This commit is contained in:
2009-08-17 17:43:49 +00:00
310 changed files with 10046 additions and 6169 deletions

View File

@@ -42,14 +42,21 @@ MACRO(SETUP_LIBDIRS)
if(COMMAND cmake_policy)
CMAKE_POLICY(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
LINK_DIRECTORIES(${PYTHON_LIBPATH} ${SDL_LIBPATH} ${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${ICONV_LIBPATH} ${OPENEXR_LIBPATH} ${QUICKTIME_LIBPATH} ${FFMPEG_LIBPATH})
LINK_DIRECTORIES(${PYTHON_LIBPATH} ${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${OPENEXR_LIBPATH} ${QUICKTIME_LIBPATH} ${FFMPEG_LIBPATH})
LINK_DIRECTORIES(${FREETYPE_LIBPATH} ${LIBSAMPLERATE_LIBPATH})
IF(WITH_INTERNATIONAL)
LINK_DIRECTORIES(${ICONV_LIBPATH})
LINK_DIRECTORIES(${GETTEXT_LIBPATH})
ENDIF(WITH_INTERNATIONAL)
IF(WITH_SDL)
LINK_DIRECTORIES(${SDL_LIBPATH})
ENDIF(WITH_SDL)
IF(WITH_OPENAL)
LINK_DIRECTORIES(${OPENAL_LIBPATH})
ENDIF(WITH_OPENAL)
IF(WITH_JACK)
LINK_DIRECTORIES(${JACK_LIBPATH})
ENDIF(WITH_JACK)
IF(WITH_FFTW3)
LINK_DIRECTORIES(${FFTW3_LIBPATH})
ENDIF(WITH_FFTW3)
@@ -62,9 +69,9 @@ ENDMACRO(SETUP_LIBDIRS)
MACRO(SETUP_LIBLINKS
target)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS} ")
#TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LIB} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIB} ${LLIBS})
#TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LIB} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIBRARY} ${LLIBS})
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${FFTW3_LIB} ${JPEG_LIBRARY} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${SDL_LIB} ${LLIBS})
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${FFTW3_LIB} ${JPEG_LIBRARY} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${LLIBS})
# since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
@@ -81,8 +88,8 @@ MACRO(SETUP_LIBLINKS
ENDIF(WIN32)
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIB} ${LLIBS})
TARGET_LINK_LIBRARIES(${target} ${FREETYPE_LIB} ${LIBSAMPLERATE_LIB})
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${LLIBS})
TARGET_LINK_LIBRARIES(${target} ${FREETYPE_LIBRARY} ${LIBSAMPLERATE_LIB})
# since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
@@ -102,8 +109,14 @@ MACRO(SETUP_LIBLINKS
TARGET_LINK_LIBRARIES(${target} ${GETTEXT_LIB})
ENDIF(WITH_INTERNATIONAL)
IF(WITH_OPENAL)
TARGET_LINK_LIBRARIES(${target} ${OPENAL_LIB})
TARGET_LINK_LIBRARIES(${target} ${OPENAL_LIBRARY})
ENDIF(WITH_OPENAL)
IF(WITH_JACK)
TARGET_LINK_LIBRARIES(${target} ${JACK_LIB})
ENDIF(WITH_JACK)
IF(WITH_SDL)
TARGET_LINK_LIBRARIES(${target} ${SDL_LIBRARY})
ENDIF(WITH_SDL)
IF(WIN32)
TARGET_LINK_LIBRARIES(${target} ${ICONV_LIB})
ENDIF(WIN32)

View File

@@ -69,6 +69,8 @@ OPTION(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON)
OPTION(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" OFF)
OPTION(WITH_WEBPLUGIN "Enable Web Plugin (Unix only)" OFF)
OPTION(WITH_FFTW3 "Enable FFTW3 support" OFF)
OPTION(WITH_JACK "Enable Jack Support (http://www.jackaudio.org)" OFF)
OPTION(WITH_INSTALL "Install accompanying scripts and language files needed to run blender" ON)
IF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
@@ -94,13 +96,18 @@ IF(UNIX AND NOT APPLE)
FIND_PACKAGE(OpenAL)
IF(OPENAL_FOUND)
SET(WITH_OPENAL ON)
SET(OPENAL_LIB ${OPENAL_LIBRARY})
SET(OPENAL_INC ${OPENAL_INCLUDE_DIR})
ELSE(OPENAL_FOUND)
SET(WITH_OPENAL OFF)
ENDIF(OPENAL_FOUND)
ENDIF(WITH_OPENAL)
IF(WITH_JACK)
SET(JACK /usr)
SET(JACK_INC ${JACK}/include/jack)
SET(JACK_LIB jack)
SET(JACK_LIBPATH ${JACK}/lib)
ENDIF(WITH_JACK)
FIND_LIBRARY(INTL_LIBRARY
NAMES intl
PATHS
@@ -111,34 +118,34 @@ IF(UNIX AND NOT APPLE)
PATHS
/sw/lib
)
IF(INTL_LIBRARY AND ICONV_LIBRARY)
SET(GETTEXT_LIB ${INTL_LIBRARY} ${ICONV_LIBRARY})
ENDIF(INTL_LIBRARY AND ICONV_LIBRARY)
FIND_PATH(FREETYPE_INC
freetype
PATHS
/usr/local/include/freetype2
/usr/include/freetype2
/sw/include/freetype2
/opt/local/include/freetype2
/opt/csw/include/freetype2
/opt/include/freetype2
NO_DEFAULT_PATH
)
SET(FREETYPE_LIB freetype)
FIND_PACKAGE(PythonLibs)
SET(PYTHON_INC "${PYTHON_INCLUDE_PATH}" CACHE STRING "")
SET(PYTHON_LIB "${PYTHON_LIBRARIES}" CACHE STRING "")
FIND_PACKAGE(PythonInterp)
SET(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
FIND_PACKAGE(Freetype)
# UNSET(FREETYPE_INCLUDE_DIRS CACHE) # cant use
# No way to set py31. remove for now.
# FIND_PACKAGE(PythonLibs)
SET(PYTHON /usr)
SET(PYTHON_VERSION 3.1)
SET(PYTHON_INC "${PYTHON}/include/python${PYTHON_VERSION}" CACHE STRING "")
# SET(PYTHON_BINARY python) # not used yet
SET(PYTHON_LIB python${PYTHON_VERSION} CACHE STRING "")
SET(PYTHON_LIBPATH ${PYTHON}/lib CACHE STRING "")
# FIND_PACKAGE(PythonInterp) # not used yet
# SET(PYTHON_BINARY ${PYTHON_EXECUTABLE} CACHE STRING "")
SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic")
IF(WITH_SDL)
FIND_PACKAGE(SDL)
SET(SDL_INC ${SDL_INCLUDE_DIR})
SET(SDL_LIB ${SDL_LIBRARY})
# UNSET(SDLMAIN_LIBRARY CACHE)
IF(NOT SDL_FOUND)
SET(WITH_SDL OFF)
ENDIF(NOT SDL_FOUND)
ENDIF(WITH_SDL)
FIND_PATH(OPENEXR_INC
@@ -159,10 +166,10 @@ IF(UNIX AND NOT APPLE)
SET(FFMPEG_LIBPATH ${FFMPEG}/lib)
IF(WITH_FFTW3)
SET(FFTW3 /usr)
SET(FFTW3_INC ${FFTW3}/include)
SET(FFTW3_LIB fftw3)
SET(FFTW3_LIBPATH ${FFTW3}/lib)
SET(FFTW3 /usr)
SET(FFTW3_INC ${FFTW3}/include)
SET(FFTW3_LIB fftw3)
SET(FFTW3_LIBPATH ${FFTW3}/lib)
ENDIF(WITH_FFTW3)
SET(LIBSAMPLERATE /usr)
@@ -176,7 +183,13 @@ IF(UNIX AND NOT APPLE)
FIND_PACKAGE(ZLIB REQUIRED)
SET(LLIBS "-lXi -lutil -lc -lm -lpthread -lstdc++ -lX11 -ldl")
# Could use ${X11_Xinput_LIB} ${X11_X11_LIB} too
SET(LLIBS "-lXi -lutil -lc -lm -lpthread -lstdc++ -lX11")
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
# BSD's dont use libdl.so
SET(LLIBS "${LLIBS} -ldl")
ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
IF(WITH_OPENMP)
SET(LLIBS "${LLIBS} -lgomp")
@@ -211,22 +224,29 @@ IF(WIN32)
SET(PYTHON ${LIBDIR}/python)
SET(PYTHON_VERSION 3.1)
SET(PYTHON_INC "${PYTHON}/include/python${PYTHON_VERSION}")
SET(PYTHON_BINARY python)
# SET(PYTHON_BINARY python) # not used yet
SET(PYTHON_LIB python31)
SET(PYTHON_LIBPATH ${PYTHON}/lib)
IF(CMAKE_CL_64)
SET(WITH_OPENAL OFF)
ELSE(CMAKE_CL_64)
#SET(WITH_OPENAL ON)
SET(OPENAL ${LIBDIR}/openal)
SET(OPENAL_INC ${OPENAL}/include)
SET(OPENAL_LIB wrap_oal)
SET(OPENAL_LIBPATH ${OPENAL}/lib)
#SET(WITH_OPENAL ON)
SET(OPENAL ${LIBDIR}/openal)
SET(OPENAL_INCLUDE_DIR ${OPENAL}/include)
SET(OPENAL_LIBRARY wrap_oal)
SET(OPENAL_LIBPATH ${OPENAL}/lib)
ENDIF(CMAKE_CL_64)
IF(WITH_JACK)
SET(JACK ${LIBDIR}/jack)
SET(JACK_INC ${JACK}/include/jack)
SET(JACK_LIB jack)
SET(JACK_LIBPATH ${JACK}/lib)
ENDIF(WITH_JACK)
IF(CMAKE_CL_64)
SET(PNG_LIBRARIES libpng)
SET(PNG_LIBRARIES libpng)
ELSE(CMAKE_CL_64)
SET(PNG_LIBRARIES libpng_st)
ENDIF(CMAKE_CL_64)
@@ -248,25 +268,25 @@ IF(WIN32)
SET(ICONV_LIBPATH ${ICONV}/lib)
IF(WITH_FFTW3)
SET(FFTW3 ${LIBDIR}/fftw3)
SET(FFTW3_INC ${FFTW3}/include)
SET(FFTW3_LIB libfftw)
SET(FFTW3_LIBPATH ${FFTW3}/lib)
SET(FFTW3 ${LIBDIR}/fftw3)
SET(FFTW3_INC ${FFTW3}/include)
SET(FFTW3_LIB libfftw)
SET(FFTW3_LIBPATH ${FFTW3}/lib)
ENDIF(WITH_FFTW3)
SET(GETTEXT ${LIBDIR}/gettext)
SET(GETTEXT_INC ${GETTEXT}/include)
IF(CMAKE_CL_64)
SET(GETTEXT_LIB gettextlib)
SET(GETTEXT_LIB gettextlib)
ELSE(CMAKE_CL_64)
SET(GETTEXT_LIB gnu_gettext)
SET(GETTEXT_LIB gnu_gettext)
ENDIF(CMAKE_CL_64)
SET(GETTEXT_LIBPATH ${GETTEXT}/lib)
SET(FREETYPE ${LIBDIR}/freetype)
SET(FREETYPE_INC ${FREETYPE}/include ${FREETYPE}/include/freetype2)
SET(FREETYPE_INCLUDE_DIRS ${FREETYPE}/include ${FREETYPE}/include/freetype2)
SET(FREETYPE_LIBPATH ${FREETYPE}/lib)
SET(FREETYPE_LIB freetype2ST)
SET(FREETYPE_LIBRARY freetype2ST)
SET(OPENEXR ${LIBDIR}/openexr)
SET(OPENEXR_INC ${OPENEXR}/include ${OPENEXR}/include/IlmImf ${OPENEXR}/include/Iex ${OPENEXR}/include/Imath)
@@ -317,8 +337,8 @@ IF(WIN32)
ENDIF(WITH_OPENMP)
SET(SDL ${LIBDIR}/sdl)
SET(SDL_INC ${SDL}/include)
SET(SDL_LIB SDL)
SET(SDL_INCLUDE_DIR ${SDL}/include)
SET(SDL_LIBRARY SDL)
SET(SDL_LIBPATH ${SDL}/lib)
SET(PNG "${LIBDIR}/png")
@@ -353,13 +373,17 @@ IF(APPLE)
FIND_PACKAGE(OpenAL)
IF(OPENAL_FOUND)
SET(WITH_OPENAL ON)
SET(OPENAL_LIB ${OPENAL_LIBRARY})
SET(OPENAL_INC ${OPENAL_INCLUDE_DIR})
ELSE(OPENAL_FOUND)
SET(WITH_OPENAL OFF)
ENDIF(OPENAL_FOUND)
ENDIF(WITH_OPENAL)
IF(WITH_JACK)
SET(JACK /usr)
SET(JACK_INC ${JACK}/include/jack)
SET(JACK_LIB jack)
SET(JACK_LIBPATH ${JACK}/lib)
ENDIF(WITH_JACK)
SET(PYTHON_VERSION 3.1)
@@ -368,7 +392,7 @@ IF(APPLE)
SET(PYTHON ${LIBDIR}/python)
SET(PYTHON_INC "${PYTHON}/include/python${PYTHON_VERSION}" CACHE STRING "")
SET(PYTHON_BINARY "${PYTHON}/bin/python${PYTHON_VERSION}" CACHE STRING "")
# SET(PYTHON_BINARY "${PYTHON}/bin/python${PYTHON_VERSION}" CACHE STRING "") # not used yet
SET(PYTHON_LIB python${PYTHON_VERSION})
SET(PYTHON_LIBPATH "${PYTHON}/lib/python${PYTHON_VERSION}" CACHE STRING "")
# SET(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
@@ -378,7 +402,7 @@ IF(APPLE)
SET(PYTHON /System/Library/Frameworks/Python.framework/Versions/)
SET(PYTHON_VERSION 2.5)
SET(PYTHON_INC "${PYTHON}${PYTHON_VERSION}/include/python${PYTHON_VERSION}" CACHE STRING "")
SET(PYTHON_BINARY ${PYTHON}${PYTHON_VERSION}/bin/python${PYTHON_VERSION} CACHE STRING "")
# SET(PYTHON_BINARY ${PYTHON}${PYTHON_VERSION}/bin/python${PYTHON_VERSION} CACHE STRING "") # not used yet
SET(PYTHON_LIB "")
SET(PYTHON_LIBPATH ${PYTHON}${PYTHON_VERSION}/lib/python${PYTHON_VERSION}/config CACHE STRING "")
SET(PYTHON_LINKFLAGS "-u _PyMac_Error -framework System -framework Python")
@@ -391,9 +415,9 @@ IF(APPLE)
IF(WITH_FFTW3)
SET(FFTW3 ${LIBDIR}/fftw3)
SET(FFTW3_INC ${FFTW3}/include)
SET(FFTW3_LIB libfftw)
SET(FFTW3_LIBPATH ${FFTW3}/lib)
SET(FFTW3_INC ${FFTW3}/include)
SET(FFTW3_LIB libfftw)
SET(FFTW3_LIBPATH ${FFTW3}/lib)
ENDIF(WITH_FFTW3)
SET(PNG_LIBRARIES png)
@@ -404,9 +428,9 @@ IF(APPLE)
SET(ZLIB_LIBRARIES z)
SET(FREETYPE ${LIBDIR}/freetype)
SET(FREETYPE_INC ${FREETYPE}/include ${FREETYPE}/include/freetype2)
SET(FREETYPE_INCLUDE_DIRS ${FREETYPE}/include ${FREETYPE}/include/freetype2)
SET(FREETYPE_LIBPATH ${FREETYPE}/lib)
SET(FREETYPE_LIB freetype)
SET(FREETYPE_LIBRARY freetype)
SET(OPENEXR ${LIBDIR}/openexr)
SET(OPENEXR_INC ${OPENEXR}/include/OpenEXR ${OPENEXR}/include)
@@ -420,7 +444,7 @@ IF(APPLE)
SET(LIBSAMPLERATE ${LIBDIR}/samplerate)
SET(LIBSAMPLERATE_INC ${LIBSAMPLERATE}/include)
SET(LIBSAMPLERATE_LIB libsamplerate)
SET(LIBSAMPLERATE_LIB samplerate)
SET(LIBSAMPLERATE_LIBPATH ${LIBSAMPLERATE}/lib)
SET(LLIBS stdc++ SystemStubs)
@@ -435,8 +459,8 @@ IF(APPLE)
ENDIF(WITH_OPENMP)
SET(SDL ${LIBDIR}/sdl)
SET(SDL_INC ${SDL}/include)
SET(SDL_LIB SDL)
SET(SDL_INCLUDE_DIR ${SDL}/include)
SET(SDL_LIBRARY SDL)
SET(SDL_LIBPATH ${SDL}/lib)
SET(PNG "${LIBDIR}/png")
@@ -480,6 +504,9 @@ ENDIF(WITH_WEBPLUGIN)
# Configure OpenGL.
FIND_PACKAGE(OpenGL)
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
# UNSET(OPENGL_LIBRARIES CACHE) # not compat with older cmake
# UNSET(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake
#-----------------------------------------------------------------------------
# Extra compile flags
IF(WITH_GAMEENGINE)

View File

@@ -60,7 +60,6 @@ B = tools.Blender
platform = sys.platform
quickie = None
quickdebug = None
nsis_build = None
##### BEGIN SETUP #####
@@ -425,8 +424,6 @@ if env['OURPLATFORM']=='darwin':
bundle = '%s.app' % prg[0]
bundledir = os.path.dirname(bundle)
for dp, dn, df in os.walk(bundle):
if 'CVS' in dn:
dn.remove('CVS')
if '.svn' in dn:
dn.remove('.svn')
dir=env['BF_INSTALLDIR']+dp[len(bundledir):]
@@ -443,8 +440,6 @@ scriptinstall = []
if env['OURPLATFORM']!='darwin':
for dp, dn, df in os.walk('bin/.blender'):
if 'CVS' in dn:
dn.remove('CVS')
if '.svn' in dn:
dn.remove('.svn')
@@ -471,8 +466,6 @@ if env['OURPLATFORM']!='darwin':
scriptpaths=['release/scripts', 'release/ui', 'release/io']
for scriptpath in scriptpaths:
for dp, dn, df in os.walk(scriptpath):
if 'CVS' in dn:
dn.remove('CVS')
if '.svn' in dn:
dn.remove('.svn')
dir=env['BF_INSTALLDIR']+'/.blender/'+os.path.basename(scriptpath)+dp[len(scriptpath):]
@@ -485,8 +478,6 @@ if env['OURPLATFORM']=='linux2':
icontargetlist = []
for tp, tn, tf in os.walk('release/freedesktop/icons'):
if 'CVS' in tn:
tn.remove('CVS')
if '.svn' in tn:
tn.remove('.svn')
for f in tf:
@@ -509,8 +500,6 @@ if env['OURPLATFORM']=='linuxcross':
pluglist = []
plugtargetlist = []
for tp, tn, tf in os.walk('release/plugins'):
if 'CVS' in tn:
tn.remove('CVS')
if '.svn' in tn:
tn.remove('.svn')
for f in tf:
@@ -541,8 +530,6 @@ for targetdir,srcfile in zip(plugtargetlist, pluglist):
textlist = []
texttargetlist = []
for tp, tn, tf in os.walk('release/text'):
if 'CVS' in tn:
tn.remove('CVS')
if '.svn' in tn:
tn.remove('.svn')
for f in tf:
@@ -599,6 +586,8 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc'):
'${LCGDIR}/ffmpeg/lib/libx264-67.dll',
'${LCGDIR}/ffmpeg/lib/xvidcore.dll',
'${LCGDIR}/ffmpeg/lib/swscale-0.dll']
if env['WITH_BF_JACK']:
dllsources += ['${LCGDIR}/jack/lib/libjack.dll']
windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
allinstall += windlls

View File

@@ -63,7 +63,7 @@ if BF_PYTHON_VERSION=='3.1':
# BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}'
BF_PYTHON_LIBPATH = '${BF_PYTHON}/lib/python${BF_PYTHON_VERSION}'
# BF_PYTHON_LINKFLAGS = '-u _PyMac_Error -framework System'
# BF_PYTHON_LINKFLAGS = ['-u', '_PyMac_Error', '-framework', 'System']
else:
# python 2.5 etc. uses built-in framework
@@ -79,9 +79,9 @@ else:
BF_PYTHON_BINARY = '${BF_PYTHON}${BF_PYTHON_VERSION}/bin/python${BF_PYTHON_VERSION}'
BF_PYTHON_LIB = ''
BF_PYTHON_LIBPATH = '${BF_PYTHON}${BF_PYTHON_VERSION}/lib/python${BF_PYTHON_VERSION}/config'
BF_PYTHON_LINKFLAGS = '-u _PyMac_Error -framework System -framework Python'
BF_PYTHON_LINKFLAGS = ['-u','_PyMac_Error','-framework','System','-framework','Python']
if MAC_CUR_VER=='10.3' or MAC_CUR_VER=='10.4':
BF_PYTHON_LINKFLAGS ='-u __dummy '+BF_PYTHON_LINKFLAGS
BF_PYTHON_LINKFLAGS = ['-u', '__dummy']+BF_PYTHON_LINKFLAGS
BF_QUIET = '1'
WITH_BF_OPENMP = '0'
@@ -112,6 +112,13 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
BF_LIBSAMPLERATE_LIB = 'samplerate'
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
# TODO - set proper paths here (add precompiled to lib/ ? )
WITH_BF_JACK = False
BF_JACK = '/usr'
BF_JACK_INC = '${BF_JACK}/include/jack'
BF_JACK_LIB = 'jack'
BF_JACK_LIBPATH = '${BF_JACK}/lib'
WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl' #$(shell sdl-config --prefix)
BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
@@ -205,14 +212,14 @@ BF_ICONV_LIB = 'iconv'
WITH_BF_STATICOPENGL = True
BF_OPENGL_LIB = 'GL GLU'
BF_OPENGL_LIBPATH = '/System/Library/Frameworks/OpenGL.framework/Libraries'
BF_OPENGL_LINKFLAGS = '-framework OpenGL'
BF_OPENGL_LINKFLAGS = ['-framework', 'OpenGL']
CFLAGS = ['-pipe','-fPIC','-funsigned-char']
CPPFLAGS = ['-fpascal-strings']
CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fpascal-strings']
CXXFLAGS = [ '-pipe','-fPIC','-funsigned-char', '-fpascal-strings']
PLATFORM_LINKFLAGS = '-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Carbon -framework AGL -framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework QuickTime'
PLATFORM_LINKFLAGS = ['-fexceptions','-framework','CoreServices','-framework','Foundation','-framework','IOKit','-framework','AppKit','-framework','Carbon','-framework','AGL','-framework','AudioUnit','-framework','AudioToolbox','-framework','CoreAudio','-framework','QuickTime']
#note to build succesfully on 10.3.9 SDK you need to patch 10.3.9 by adding the SystemStubs.a lib from 10.4
LLIBS = ['stdc++', 'SystemStubs']
@@ -221,12 +228,12 @@ LLIBS = ['stdc++', 'SystemStubs']
if MAC_MIN_VERS == '10.3':
CFLAGS = ['-fuse-cxa-atexit']+CFLAGS
CXXFLAGS = ['-fuse-cxa-atexit']+CXXFLAGS
PLATFORM_LINKFLAGS = '-fuse-cxa-atexit '+PLATFORM_LINKFLAGS
PLATFORM_LINKFLAGS = ['-fuse-cxa-atexit']+PLATFORM_LINKFLAGS
LLIBS.append('crt3.o')
if USE_SDK==True:
SDK_FLAGS=['-isysroot', MACOSX_SDK,'-mmacosx-version-min='+MAC_MIN_VERS]
PLATFORM_LINKFLAGS = '-mmacosx-version-min='+MAC_MIN_VERS+ ' -Wl,-syslibroot,' + MACOSX_SDK+" "+PLATFORM_LINKFLAGS
PLATFORM_LINKFLAGS = ['-mmacosx-version-min='+MAC_MIN_VERS, '-Wl,-syslibroot,' + MACOSX_SDK]+PLATFORM_LINKFLAGS
CCFLAGS=SDK_FLAGS+CCFLAGS
CXXFLAGS=SDK_FLAGS+CXXFLAGS

View File

@@ -27,6 +27,12 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
BF_LIBSAMPLERATE_LIB = 'samplerate'
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
WITH_BF_JACK = False
BF_JACK = '/usr'
BF_JACK_INC = '${BF_JACK}/include/jack'
BF_JACK_LIB = 'jack'
BF_JACK_LIBPATH = '${BF_JACK}/lib'
WITH_BF_SDL = True
BF_SDL = '/usr' #$(shell sdl-config --prefix)
BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)

View File

@@ -31,6 +31,12 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
BF_LIBSAMPLERATE_LIB = 'libsamplerate'
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
WITH_BF_JACK = False
BF_JACK = LIBDIR + '/jack'
BF_JACK_INC = '${BF_JACK}/include'
BF_JACK_LIB = 'libjack'
BF_JACK_LIBPATH = '${BF_JACK}/lib'
WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl'
BF_SDL_INC = '${BF_SDL}/include'

View File

@@ -37,6 +37,12 @@ BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
BF_LIBSAMPLERATE_LIB = 'libsamplerate'
BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
WITH_BF_JACK = False
BF_JACK = LIBDIR + '/jack'
BF_JACK_INC = '${BF_JACK}/include'
BF_JACK_LIB = 'libjack'
BF_JACK_LIBPATH = '${BF_JACK}/lib'
WITH_BF_SDL = True
BF_SDL = LIBDIR + '/sdl'
BF_SDL_INC = '${BF_SDL}/include'

View File

@@ -26,8 +26,13 @@
SET(INC include src)
IF(UNIX)
SET(INC ${INC} ${X11_X11_INCLUDE_PATH})
ENDIF(UNIX)
SET(SRC
src/glew.c
)
BLENDERLIB(extern_glew "${SRC}" "${INC}")

View File

@@ -24,7 +24,7 @@
#
# ***** END GPL LICENSE BLOCK *****
SET(INC . src ${FREETYPE_INC})
SET(INC . src)
FILE(GLOB SRC *.c except t1_generate_luts.c)
ADD_DEFINITIONS(-DWITH_OPENJPEG)

View File

@@ -31,22 +31,28 @@ IF(WITH_FFMPEG)
ENDIF(WITH_FFMPEG)
IF(WITH_SDL)
SET(INC ${INC} SDL ${SDL_INC})
SET(INC ${INC} SDL ${SDL_INCLUDE_DIR})
FILE(GLOB SDLSRC SDL/*.cpp)
ADD_DEFINITIONS(-DWITH_SDL)
ENDIF(WITH_SDL)
IF(WITH_OPENAL)
SET(INC ${INC} OpenAL ${OPENAL_INC})
SET(INC ${INC} OpenAL ${OPENAL_INCLUDE_DIR})
FILE(GLOB OPENALSRC OpenAL/*.cpp)
ADD_DEFINITIONS(-DWITH_OPENAL)
STRING(REGEX MATCH ".*ramework.*" FRAMEWORK ${OPENAL_INC})
STRING(REGEX MATCH ".*ramework.*" FRAMEWORK ${OPENAL_INCLUDE_DIR})
IF(FRAMEWORK)
ADD_DEFINITIONS(-DAPPLE_FRAMEWORK_FIX)
ENDIF(FRAMEWORK)
ENDIF(WITH_OPENAL)
SET(SRC ${SRC} ${FFMPEGSRC} ${SDLSRC} ${OPENALSRC})
IF(WITH_JACK)
SET(INC ${INC} jack ${JACK_INC})
FILE(GLOB JACKSRC jack/*.cpp)
ADD_DEFINITIONS(-DWITH_JACK)
ENDIF(WITH_JACK)
SET(SRC ${SRC} ${FFMPEGSRC} ${SDLSRC} ${OPENALSRC} ${JACKSRC})
BLENDERLIB(bf_audaspace "${SRC}" "${INC}")

View File

@@ -51,8 +51,11 @@ install: $(ALL_OR_DEBUG)
@[ -d $(NAN_AUDASPACE)/include ] || mkdir $(NAN_AUDASPACE)/include
@[ -d $(NAN_AUDASPACE)/lib/$(DEBUG_DIR) ] || mkdir $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)
@../tools/cpifdiff.sh $(DIR)/$(DEBUG_DIR)libaudaspace.a $(DIR)/$(DEBUG_DIR)libaud_fx.a $(DIR)/$(DEBUG_DIR)libaud_src.a $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)
ifeq ($(OS),darwin)
ranlib $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaudaspace.a
ranlib $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_src.a
ranlib $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_fx.a
endif
@../tools/cpifdiff.sh intern/*.h $(NAN_AUDASPACE)/include/

View File

@@ -21,4 +21,9 @@ if env['WITH_BF_OPENAL']:
incs += ' OpenAL ' + env['BF_OPENAL_INC']
defs.append('WITH_OPENAL')
if env['WITH_BF_JACK']:
sources += env.Glob('jack/*.cpp')
incs += ' jack ' + env['BF_JACK_INC']
defs.append('WITH_JACK')
env.BlenderLib ('bf_audaspace', sources, Split(incs), defs, libtype=['intern'], priority = [25] )

View File

@@ -27,13 +27,11 @@
#include "AUD_SDLDevice.h"
#include "AUD_IReader.h"
#include <SDL.h>
// this is the callback function for SDL, it only calls the class
void mixAudio(void *data, Uint8* buffer, int length)
void AUD_SDLDevice::SDL_mix(void *data, Uint8* buffer, int length)
{
AUD_SDLDevice* device = (AUD_SDLDevice*)data;
device->SDLmix((sample_t *)buffer, length);
device->mix((sample_t*)buffer, length/AUD_SAMPLE_SIZE(device->m_specs));
}
AUD_SDLDevice::AUD_SDLDevice(AUD_Specs specs, int buffersize)
@@ -56,7 +54,7 @@ AUD_SDLDevice::AUD_SDLDevice(AUD_Specs specs, int buffersize)
format.format = AUDIO_S16SYS;
format.channels = m_specs.channels;
format.samples = buffersize;
format.callback = &mixAudio;
format.callback = AUD_SDLDevice::SDL_mix;
format.userdata = this;
if(SDL_OpenAudio(&format, &obtained) != 0)
@@ -86,11 +84,6 @@ AUD_SDLDevice::~AUD_SDLDevice()
destroy();
}
void AUD_SDLDevice::SDLmix(sample_t* buffer, int length)
{
mix(buffer, length/AUD_SAMPLE_SIZE(m_specs));
}
void AUD_SDLDevice::playing(bool playing)
{
SDL_PauseAudio(playing ? 0 : 1);

View File

@@ -28,11 +28,22 @@
#include "AUD_SoftwareDevice.h"
#include <SDL.h>
/**
* This device plays back through SDL, the simple direct media layer.
*/
class AUD_SDLDevice : public AUD_SoftwareDevice
{
private:
/**
* Mixes the next bytes into the buffer.
* \param data The SDL device.
* \param buffer The target buffer.
* \param length The length in bytes to be filled.
*/
static void SDL_mix(void *data, Uint8* buffer, int length);
protected:
virtual void playing(bool playing);
@@ -50,14 +61,6 @@ public:
* Closes the SDL audio device.
*/
virtual ~AUD_SDLDevice();
/**
* Mixes the next bytes into the buffer.
* \param buffer The target buffer.
* \param length The length in bytes to be filled.
* \warning This function shall not be called from outside!
*/
void SDLmix(sample_t* buffer, int length);
};
#endif //AUD_SDLDEVICE

View File

@@ -28,7 +28,7 @@
#
#
LIBNAME = SDLaudaspace
LIBNAME = aud_sdl
DIR = $(OCGDIR)/intern/$(LIBNAME)
include nan_compile.mk

View File

@@ -35,6 +35,7 @@ include nan_compile.mk
CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
CPPFLAGS += -I$(LCGDIR)/samplerate/include/
CPPFLAGS += -I../ffmpeg
CPPFLAGS += -I../FX
CPPFLAGS += -I../SDL

View File

@@ -34,7 +34,7 @@ extern "C" {
#include <libavformat/avformat.h>
}
// This function transforms a FFMPEG SampleFormat to or own sample format
// This function transforms a FFMPEG SampleFormat to our own sample format
static inline AUD_SampleFormat FFMPEG_TO_AUD(SampleFormat fmt)
{
switch(fmt)

View File

@@ -28,7 +28,7 @@
#
#
LIBNAME = ffmpegaudaspace
LIBNAME = aud_ffmpeg
DIR = $(OCGDIR)/intern/$(LIBNAME)
include nan_compile.mk

View File

@@ -23,10 +23,6 @@
* ***** END LGPL LICENSE BLOCK *****
*/
/*#define WITH_SDL
#define WITH_FFMPEG
#define WITH_OPENAL*/
#include "AUD_NULLDevice.h"
#include "AUD_I3DDevice.h"
#include "AUD_StreamBufferFactory.h"
@@ -47,6 +43,10 @@
#include "AUD_OpenALDevice.h"
#endif
#ifdef WITH_JACK
#include "AUD_JackDevice.h"
#endif
#ifdef WITH_FFMPEG
#include "AUD_FFMPEGFactory.h"
extern "C" {
@@ -97,6 +97,11 @@ int AUD_init(AUD_DeviceType device, AUD_Specs specs, int buffersize)
case AUD_OPENAL_DEVICE:
dev = new AUD_OpenALDevice(specs, buffersize);
break;
#endif
#ifdef WITH_JACK
case AUD_JACK_DEVICE:
dev = new AUD_JackDevice(specs);
break;
#endif
default:
return false;
@@ -125,6 +130,9 @@ int* AUD_enumDevices()
#endif
#ifdef WITH_OPENAL
AUD_available_devices[i++] = AUD_OPENAL_DEVICE;
#endif
#ifdef WITH_JACK
AUD_available_devices[i++] = AUD_JACK_DEVICE;
#endif
AUD_available_devices[i++] = AUD_NULL_DEVICE;
return AUD_available_devices;

View File

@@ -36,7 +36,8 @@ typedef enum
{
AUD_NULL_DEVICE = 0,
AUD_SDL_DEVICE,
AUD_OPENAL_DEVICE
AUD_OPENAL_DEVICE,
AUD_JACK_DEVICE
} AUD_DeviceType;
typedef struct

View File

@@ -60,6 +60,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_u8_double;
break;
default:
break;
}
break;
case AUD_FORMAT_S16:
@@ -86,6 +88,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_s16_double;
break;
default:
break;
}
break;
case AUD_FORMAT_S24:
@@ -110,6 +114,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_double_s24_be;
break;
default:
break;
}
else
switch(specs.format)
@@ -132,6 +138,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_double_s24_le;
break;
default:
break;
}
break;
case AUD_FORMAT_S32:
@@ -158,6 +166,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_s32_double;
break;
default:
break;
}
break;
case AUD_FORMAT_FLOAT32:
@@ -184,6 +194,8 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_float_double;
break;
default:
break;
}
break;
case AUD_FORMAT_FLOAT64:
@@ -210,8 +222,12 @@ AUD_ConverterReader::AUD_ConverterReader(AUD_IReader* reader, AUD_Specs specs) :
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_copy<double>;
break;
default:
break;
}
break;
default:
break;
}
m_specs.format = specs.format;

View File

@@ -125,6 +125,8 @@ void AUD_FloatMixer::setSpecs(AUD_Specs specs)
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_float_double;
break;
default:
break;
}
}

View File

@@ -180,7 +180,8 @@ typedef enum
AUD_ERROR_FILE,
AUD_ERROR_FFMPEG,
AUD_ERROR_SDL,
AUD_ERROR_OPENAL
AUD_ERROR_OPENAL,
AUD_ERROR_JACK
} AUD_Error;
/// Message codes.

View File

@@ -35,6 +35,7 @@ include nan_compile.mk
CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
CPPFLAGS += -I$(LCGDIR)/samplerate/include/
CPPFLAGS += -I../ffmpeg
CPPFLAGS += -I../FX
CPPFLAGS += -I../SDL

View File

@@ -0,0 +1,149 @@
/*
* $Id$
*
* ***** BEGIN LGPL LICENSE BLOCK *****
*
* Copyright 2009 Jörg Hermann Müller
*
* This file is part of AudaSpace.
*
* AudaSpace is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* AudaSpace 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with AudaSpace. If not, see <http://www.gnu.org/licenses/>.
*
* ***** END LGPL LICENSE BLOCK *****
*/
#include "AUD_FloatMixer.h"
#include "AUD_JackDevice.h"
#include "AUD_IReader.h"
#include "AUD_Buffer.h"
#include <stdio.h>
#include <stdlib.h>
// AUD_XXX this is not realtime suitable!
int AUD_JackDevice::jack_mix(jack_nframes_t length, void *data)
{
AUD_JackDevice* device = (AUD_JackDevice*)data;
int samplesize = AUD_SAMPLE_SIZE(device->m_specs);
if(device->m_buffer->getSize() < samplesize * length)
device->m_buffer->resize(samplesize * length);
device->mix(device->m_buffer->getBuffer(), length);
float* in = (float*) device->m_buffer->getBuffer();
float* out;
int count = device->m_specs.channels;
for(int i = 0; i < count; i++)
{
out = (float*)jack_port_get_buffer(device->m_ports[i], length);
for(int j = 0; j < length; j++)
out[j] = in[j * count + i];
}
return 0;
}
void AUD_JackDevice::jack_shutdown(void *data)
{
AUD_JackDevice* device = (AUD_JackDevice*)data;
device->m_valid = false;
}
AUD_JackDevice::AUD_JackDevice(AUD_Specs specs)
{
if(specs.channels == AUD_CHANNELS_INVALID)
specs.channels = AUD_CHANNELS_STEREO;
// jack uses floats
m_specs = specs;
m_specs.format = AUD_FORMAT_FLOAT32;
jack_options_t options = JackNullOption;
jack_status_t status;
// open client
m_client = jack_client_open("Blender", options, &status);
if(m_client == NULL)
AUD_THROW(AUD_ERROR_JACK);
m_buffer = new AUD_Buffer(); AUD_NEW("buffer");
// set callbacks
jack_set_process_callback(m_client, AUD_JackDevice::jack_mix, this);
jack_on_shutdown(m_client, AUD_JackDevice::jack_shutdown, this);
// register our output channels which are called ports in jack
m_ports = new jack_port_t*[m_specs.channels]; AUD_NEW("jack_port")
try
{
char portname[64];
for(int i = 0; i < m_specs.channels; i++)
{
sprintf(portname, "out %d", i+1);
m_ports[i] = jack_port_register(m_client, portname,
JACK_DEFAULT_AUDIO_TYPE,
JackPortIsOutput, 0);
if(m_ports[i] == NULL)
AUD_THROW(AUD_ERROR_JACK);
}
m_specs.rate = (AUD_SampleRate)jack_get_sample_rate(m_client);
// activate the client
if(jack_activate(m_client))
AUD_THROW(AUD_ERROR_JACK);
}
catch(AUD_Exception e)
{
jack_client_close(m_client);
delete[] m_ports; AUD_DELETE("jack_port")
delete m_buffer; AUD_DELETE("buffer");
throw;
}
const char** ports = jack_get_ports(m_client, NULL, NULL,
JackPortIsPhysical | JackPortIsInput);
if(ports != NULL)
{
for(int i = 0; i < m_specs.channels && ports[i]; i++)
jack_connect(m_client, jack_port_name(m_ports[i]), ports[i]);
free(ports);
}
m_mixer = new AUD_FloatMixer(); AUD_NEW("mixer")
m_mixer->setSpecs(m_specs);
m_valid = true;
create();
}
AUD_JackDevice::~AUD_JackDevice()
{
lock();
if(m_valid)
jack_client_close(m_client);
delete[] m_ports; AUD_DELETE("jack_port")
delete m_buffer; AUD_DELETE("buffer");
unlock();
destroy();
}
void AUD_JackDevice::playing(bool playing)
{
// Do nothing.
}

View File

@@ -0,0 +1,91 @@
/*
* $Id$
*
* ***** BEGIN LGPL LICENSE BLOCK *****
*
* Copyright 2009 Jörg Hermann Müller
*
* This file is part of AudaSpace.
*
* AudaSpace is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* AudaSpace 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with AudaSpace. If not, see <http://www.gnu.org/licenses/>.
*
* ***** END LGPL LICENSE BLOCK *****
*/
#ifndef AUD_JACKDEVICE
#define AUD_JACKDEVICE
#include "AUD_SoftwareDevice.h"
class AUD_Buffer;
#include <jack.h>
/**
* This device plays back through Jack.
*/
class AUD_JackDevice : public AUD_SoftwareDevice
{
private:
/**
* The output ports of jack.
*/
jack_port_t** m_ports;
/**
* The jack client.
*/
jack_client_t* m_client;
/**
* The output buffer.
*/
AUD_Buffer* m_buffer;
/**
* Whether the device is valid.
*/
bool m_valid;
/**
* Invalidates the jack device.
* \param data The jack device that gets invalidet by jack.
*/
static void jack_shutdown(void *data);
/**
* Mixes the next bytes into the buffer.
* \param length The length in samples to be filled.
* \param data A pointer to the jack device.
* \return 0 what shows success.
*/
static int jack_mix(jack_nframes_t length, void *data);
protected:
virtual void playing(bool playing);
public:
/**
* Creates a Jack client for audio output.
* \param specs The wanted audio specification, where only the channel count is important.
* \exception AUD_Exception Thrown if the audio device cannot be opened.
*/
AUD_JackDevice(AUD_Specs specs);
/**
* Closes the Jack client.
*/
virtual ~AUD_JackDevice();
};
#endif //AUD_JACKDEVICE

View File

@@ -0,0 +1,40 @@
#
# $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): GSR
#
# ***** END GPL LICENSE BLOCK *****
#
#
LIBNAME = aud_jack
DIR = $(OCGDIR)/intern/audaspace
include nan_compile.mk
CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
CPPFLAGS += -I../intern
CPPFLAGS += -I..
CPPFLAGS += -I.

View File

@@ -24,7 +24,7 @@
#
# ***** END GPL LICENSE BLOCK *****
SET(INC ${PNG_INC} ${ZLIB_INC} ${SDL_INC} extern)
SET(INC ${PNG_INC} ${ZLIB_INC} extern)
FILE(GLOB SRC intern/*.cpp)

View File

@@ -22,9 +22,9 @@
{
if(doReduce) {
// synchronize global vars
for(int j=0; j<calcListFull.size() ; j++) mListFull.push_back( calcListFull[j] );
for(int j=0; j<calcListEmpty.size(); j++) mListEmpty.push_back( calcListEmpty[j] );
for(int j=0; j<calcListParts.size(); j++) mpParticles->addFullParticle( calcListParts[j] );
for(size_t j=0; j<calcListFull.size() ; j++) mListFull.push_back( calcListFull[j] );
for(size_t j=0; j<calcListEmpty.size(); j++) mListEmpty.push_back( calcListEmpty[j] );
for(size_t j=0; j<calcListParts.size(); j++) mpParticles->addFullParticle( calcListParts[j] );
if(calcMaxVlen>mMaxVlen) {
mMxvx = calcMxvx;
mMxvy = calcMxvy;

View File

@@ -24,7 +24,7 @@
#
# ***** END GPL LICENSE BLOCK *****
SET(INC . ../string ${WINTAB_INC})
SET(INC . ../string)
FILE(GLOB SRC intern/*.cpp)
@@ -37,6 +37,7 @@ IF(APPLE)
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowX11.cpp")
ELSE(APPLE)
IF(WIN32)
SET(INC ${INC} ${WINTAB_INC})
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerCarbon.cpp")
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemCarbon.cpp")
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowCarbon.cpp")
@@ -44,6 +45,7 @@ ELSE(APPLE)
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemX11.cpp")
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowX11.cpp")
ELSE(WIN32)
SET(INC ${INC} ${X11_X11_INCLUDE_PATH})
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_DisplayManagerWin32.cpp")
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_SystemWin32.cpp")
LIST(REMOVE_ITEM SRC "${CMAKE_CURRENT_SOURCE_DIR}/intern/GHOST_WindowWin32.cpp")

View File

@@ -82,7 +82,7 @@ typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED
#endif
#elif defined(__linux__)
#elif defined(__linux__) || defined(__NetBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h>

View File

@@ -83,7 +83,7 @@ typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED
#endif
#elif defined(__linux__)
#elif defined(__linux__) || defined(__NetBSD__)
/* Linux-i386, Linux-Alpha, Linux-ppc */
#include <stdint.h>

View File

@@ -36,7 +36,7 @@ struct FLUID_3D *smoke_init(int *res, float *p0, float dt);
void smoke_free(struct FLUID_3D *fluid);
void smoke_initBlenderRNA(struct FLUID_3D *fluid, float *alpha, float *beta);
void smoke_step(struct FLUID_3D *fluid);
void smoke_step(struct FLUID_3D *fluid, size_t framenr);
float *smoke_get_density(struct FLUID_3D *fluid);
float *smoke_get_heat(struct FLUID_3D *fluid);
@@ -49,6 +49,8 @@ unsigned char *smoke_get_obstacle(struct FLUID_3D *fluid);
size_t smoke_get_index(int x, int max_x, int y, int max_y, int z);
size_t smoke_get_index2d(int x, int max_x, int y);
void smoke_dissolve(struct FLUID_3D *fluid, int speed, int log);
// wavelet turbulence functions
struct WTURBULENCE *smoke_turbulence_init(int *res, int amplify, int noisetype);
void smoke_turbulence_free(struct WTURBULENCE *wt);
@@ -59,6 +61,8 @@ void smoke_turbulence_get_res(struct WTURBULENCE *wt, int *res);
void smoke_turbulence_set_noise(struct WTURBULENCE *wt, int type);
void smoke_initWaveletBlenderRNA(struct WTURBULENCE *wt, float *strength);
void smoke_dissolve_wavelet(struct WTURBULENCE *wt, int speed, int log);
#ifdef __cplusplus
}
#endif

View File

@@ -101,6 +101,8 @@ FLUID_3D::FLUID_3D(int *res, float *p0, float dt) :
_h = new float[_totalCells];
_Precond = new float[_totalCells];
// DG TODO: check if alloc went fine
for (int x = 0; x < _totalCells; x++)
{
_density[x] = 0.0f;
@@ -219,7 +221,10 @@ void FLUID_3D::step()
{
// wipe forces
for (int i = 0; i < _totalCells; i++)
{
_xForce[i] = _yForce[i] = _zForce[i] = 0.0f;
_obstacles[i] &= ~2;
}
wipeBoundaries();
@@ -683,16 +688,17 @@ void FLUID_3D::advectMacCormack()
const float dt0 = _dt / _dx;
// use force arrays as temp arrays
for (int x = 0; x < _totalCells; x++)
_xForce[x] = _yForce[x] = 0.0;
for (int x = 0; x < _totalCells; x++)
_xForce[x] = _yForce[x] = 0.0;
float* t1 = _xForce;
float* t2 = _yForce;
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _densityOld, _density, t1,t2, res, NULL);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _heatOld, _heat, t1,t2, res, NULL);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _xVelocityOld, _xVelocity, t1,t2, res, NULL);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _yVelocityOld, _yVelocity, t1,t2, res, NULL);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _zVelocityOld, _zVelocity, t1,t2, res, NULL);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _densityOld, _density, t1,t2, res, _obstacles);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _heatOld, _heat, t1,t2, res, _obstacles);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _xVelocityOld, _xVelocity, t1,t2, res, _obstacles);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _yVelocityOld, _yVelocity, t1,t2, res, _obstacles);
advectFieldMacCormack(dt0, _xVelocityOld, _yVelocityOld, _zVelocityOld, _zVelocityOld, _zVelocity, t1,t2, res, _obstacles);
if(DOMAIN_BC_LEFT == 0) copyBorderX(_xVelocity, res);
else setZeroX(_xVelocity, res);

View File

@@ -161,13 +161,13 @@ class FLUID_3D
static void advectFieldSemiLagrange(const float dt, const float* velx, const float* vely, const float* velz,
float* oldField, float* newField, Vec3Int res);
static void advectFieldMacCormack(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const float* obstacles);
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const unsigned char* obstacles);
// maccormack helper functions
static void clampExtrema(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
float* oldField, float* newField, Vec3Int res);
static void clampOutsideRays(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
float* oldField, float* newField, Vec3Int res, const float* obstacles, const float *oldAdvection);
float* oldField, float* newField, Vec3Int res, const unsigned char* obstacles, const float *oldAdvection);
// output helper functions
// static void writeImageSliceXY(const float *field, Vec3Int res, int slice, string prefix, int picCnt, float scale=1.);

View File

@@ -26,7 +26,8 @@
void FLUID_3D::solvePressurePre(float* field, float* b, unsigned char* skip)
{
size_t x, y, z, index;
int x, y, z;
size_t index;
// i = 0
int i = 0;
@@ -197,7 +198,8 @@ void FLUID_3D::solvePressurePre(float* field, float* b, unsigned char* skip)
//////////////////////////////////////////////////////////////////////
void FLUID_3D::solvePressure(float* field, float* b, unsigned char* skip)
{
size_t x, y, z, index;
int x, y, z;
size_t index;
// i = 0
int i = 0;
@@ -348,7 +350,8 @@ void FLUID_3D::solvePressure(float* field, float* b, unsigned char* skip)
//////////////////////////////////////////////////////////////////////
void FLUID_3D::solveHeat(float* field, float* b, unsigned char* skip)
{
size_t x, y, z, index;
int x, y, z;
size_t index;
const float heatConst = _dt * _heatDiffusion / (_dx * _dx);
// i = 0

View File

@@ -338,7 +338,7 @@ void FLUID_3D::advectFieldSemiLagrange(const float dt, const float* velx, const
// comments are the pseudocode from selle's paper
//////////////////////////////////////////////////////////////////////
void FLUID_3D::advectFieldMacCormack(const float dt, const float* xVelocity, const float* yVelocity, const float* zVelocity,
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const float* obstacles)
float* oldField, float* newField, float* temp1, float* temp2, Vec3Int res, const unsigned char* obstacles)
{
float* phiHatN = temp1;
float* phiHatN1 = temp2;
@@ -459,7 +459,7 @@ void FLUID_3D::clampExtrema(const float dt, const float* velx, const float* vely
// incorrect
//////////////////////////////////////////////////////////////////////
void FLUID_3D::clampOutsideRays(const float dt, const float* velx, const float* vely, const float* velz,
float* oldField, float* newField, Vec3Int res, const float* obstacles, const float *oldAdvection)
float* oldField, float* newField, Vec3Int res, const unsigned char* obstacles, const float *oldAdvection)
{
const int sx= res[0];
const int sy= res[1];

View File

@@ -926,7 +926,9 @@ inline void hsvToRgb( VECTOR_TYPE &V )
//! global string for formatting vector output in utilities.cpp
//extern const char *globVecFormatStr;
#if 0
static const char *globVecFormatStr = "[%6.4f,%6.4f,%6.4f]";
#endif
/*************************************************************************
Outputs the object in human readable form using the format

View File

@@ -220,7 +220,7 @@ static bool loadTile(float* const noiseTileData, std::string filename)
}
// dimensions
int gridSize = noiseTileSize * noiseTileSize * noiseTileSize;
size_t gridSize = noiseTileSize * noiseTileSize * noiseTileSize;
// noiseTileData memory is managed by caller
size_t bread = fread((void*)noiseTileData, sizeof(float), gridSize, file);
@@ -228,7 +228,7 @@ static bool loadTile(float* const noiseTileData, std::string filename)
printf("Noise tile file '%s' loaded.\n", filename.c_str());
if (bread != gridSize) {
printf("loadTile: Noise tile '%s' is wrong size %d.\n", filename.c_str(), bread);
printf("loadTile: Noise tile '%s' is wrong size %d.\n", filename.c_str(), (int)bread);
return false;
}
return true;

View File

@@ -63,7 +63,18 @@ extern "C" void smoke_turbulence_free(WTURBULENCE *wt)
wt = NULL;
}
extern "C" void smoke_step(FLUID_3D *fluid)
extern "C" size_t smoke_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */)
{
// // const int index = x + y * smd->res[0] + z * smd->res[0]*smd->res[1];
return x + y * max_x + z * max_x*max_y;
}
extern "C" size_t smoke_get_index2d(int x, int max_x, int y /*, int max_y, int z, int max_z */)
{
return x + y * max_x;
}
extern "C" void smoke_step(FLUID_3D *fluid, size_t framenr)
{
fluid->step();
}
@@ -79,6 +90,88 @@ extern "C" void smoke_initBlenderRNA(FLUID_3D *fluid, float *alpha, float *beta)
fluid->initBlenderRNA(alpha, beta);
}
extern "C" void smoke_dissolve(FLUID_3D *fluid, int speed, int log)
{
float *density = fluid->_density;
//float *densityOld = fluid->_densityOld;
float *heat = fluid->_heat;
if(log)
{
/* max density/speed = dydx */
float dydx = 1.0 / (float)speed;
size_t size= fluid->_xRes * fluid->_yRes * fluid->_zRes;
for(size_t i = 0; i < size; i++)
{
density[i] *= (1.0 - dydx);
if(density[i] < 0.0f)
density[i] = 0.0f;
heat[i] *= (1.0 - dydx);
if(heat[i] < 0.0f)
heat[i] = 0.0f;
}
}
else // linear falloff
{
/* max density/speed = dydx */
float dydx = 1.0 / (float)speed;
size_t size= fluid->_xRes * fluid->_yRes * fluid->_zRes;
for(size_t i = 0; i < size; i++)
{
density[i] -= dydx;
if(density[i] < 0.0f)
density[i] = 0.0f;
heat[i] -= dydx;
if(heat[i] < 0.0f)
heat[i] = 0.0f;
}
}
}
extern "C" void smoke_dissolve_wavelet(WTURBULENCE *wt, int speed, int log)
{
float *density = wt->getDensityBig();
Vec3Int r = wt->getResBig();
if(log)
{
/* max density/speed = dydx */
float dydx = 1.0 / (float)speed;
size_t size= r[0] * r[1] * r[2];
for(size_t i = 0; i < size; i++)
{
density[i] *= (1.0 - dydx);
if(density[i] < 0.0f)
density[i] = 0.0f;
}
}
else // linear falloff
{
/* max density/speed = dydx */
float dydx = 1.0 / (float)speed;
size_t size= r[0] * r[1] * r[2];
for(size_t i = 0; i < size; i++)
{
density[i] -= dydx;
if(density[i] < 0.0f)
density[i] = 0.0f;
}
}
}
extern "C" void smoke_initWaveletBlenderRNA(WTURBULENCE *wt, float *strength)
{
wt->initBlenderRNA(strength);
@@ -134,17 +227,6 @@ extern "C" unsigned char *smoke_get_obstacle(FLUID_3D *fluid)
return fluid->_obstacles;
}
extern "C" size_t smoke_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */)
{
// // const int index = x + y * smd->res[0] + z * smd->res[0]*smd->res[1];
return x + y * max_x + z * max_x*max_y;
}
extern "C" size_t smoke_get_index2d(int x, int max_x, int y /*, int max_y, int z, int max_z */)
{
return x + y * max_x;
}
extern "C" void smoke_turbulence_set_noise(WTURBULENCE *wt, int type)
{
wt->setNoise(type);

View File

@@ -43,7 +43,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
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\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
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\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
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\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
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\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
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\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\lib\windows\pthreads\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\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\memutil\include;..\..\..\..\build\msvc_9\intern\smoke\include;..\..\..\source\blender;..\..\..\source\blender\avi;..\..\..\source\blender\imbuf;..\..\..\source\blender\editors\include;..\..\..\source\blender\python;..\..\..\source\blender\blenlib;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\blender\nodes;..\..\..\source\blender\blenloader;..\..\..\source\kernel\gen_system;..\..\..\source\blender\renderconverter;..\..\..\source\blender\render\extern\include;..\..\..\source\gameengine\SoundSystem;..\..\..\..\build\msvc_9\extern\verse\include;..\..\..\..\build\msvc_9\intern\opennl\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;UNWRAPPER;WITH_FFMPEG"
StringPooling="true"
RuntimeLibrary="0"
@@ -781,6 +781,10 @@
RelativePath="..\..\..\source\blender\blenkernel\intern\texture.c"
>
</File>
<File
RelativePath="..\..\..\source\blender\blenkernel\intern\unit.c"
>
</File>
<File
RelativePath="..\..\..\source\blender\blenkernel\intern\world.c"
>
@@ -1090,6 +1094,10 @@
RelativePath="..\..\..\source\blender\blenkernel\BKE_texture.h"
>
</File>
<File
RelativePath="..\..\..\source\blender\blenkernel\BKE_unit.h"
>
</File>
<File
RelativePath="..\..\..\source\blender\blenkernel\BKE_utildefines.h"
>

View File

@@ -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\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;..\..\..\intern\audaspace"
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;..\..\..\intern\audaspace\intern"
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\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;..\..\..\intern\audaspace"
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;..\..\..\intern\audaspace\intern"
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"
@@ -995,7 +995,11 @@
Name="animation"
>
<File
RelativePath="..\..\..\source\blender\editors\animation\anim_channels.c"
RelativePath="..\..\..\source\blender\editors\animation\anim_channels_defines.c"
>
</File>
<File
RelativePath="..\..\..\source\blender\editors\animation\anim_channels_edit.c"
>
</File>
<File

View File

@@ -43,7 +43,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -118,7 +118,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
StringPooling="true"
RuntimeLibrary="0"
@@ -194,7 +194,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -269,7 +269,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
StringPooling="true"
RuntimeLibrary="2"
@@ -345,7 +345,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="WIN32,_LIB,_DEBUG"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -420,7 +420,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\source\blender;..\..\..\source\blender\imbuf;..\..\..\source\blender\blenlib;..\..\..\source\blender\include;..\..\..\source\blender\blenkernel;..\..\..\source\blender\makesdna;..\..\..\source\blender\makesrna;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\Ketsji;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\ode;..\..\..\source\gameengine\SceneGraph;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\BlenderRoutines;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\soundsystem\snd_openal;..\..\..\source\gameengine\rasterizer\ras_openglrasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\gameengine\soundsystem\snd_blenderwavecache;..\..\..\source\sumo\include;..\..\..\source\sumo\Fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\gpu;..\..\..\source\blender\windowmanager;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,USE_SUMO_SOLID"
StringPooling="true"
RuntimeLibrary="0"

View File

@@ -43,7 +43,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID"
StringPooling="true"
RuntimeLibrary="2"
@@ -119,7 +119,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -194,7 +194,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -270,7 +270,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"
StringPooling="true"
RuntimeLibrary="0"
@@ -346,7 +346,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="JANCODEPANCO;WIN32;_LIB;EXP_PYTHON_EMBEDDING;_DEBUG;USE_SUMO_SOLID;WITH_GLEXT"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -422,7 +422,7 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace"
AdditionalIncludeDirectories="..\..\..\..\build\msvc_9\intern\string\include;..\..\..\..\build\msvc_9\intern\moto\include;..\..\..\..\build\msvc_9\intern\soundsystem\include;..\..\..\..\build\msvc_9\intern\guardedalloc\include;..\..\..\..\build\msvc_9\extern\bullet\include;..\..\..\..\build\msvc_9\extern\solid\include;..\..\..\..\build\msvc_9\extern\glew\include;..\..\..\..\lib\windows\python\include\python3.1;..\..\..\..\lib\windows\sdl\include;..\..\..\source\blender\imbuf;..\..\..\source\blender\include;..\..\..\source\blender\blenlib;..\..\..\source\blender\python;..\..\..\source\blender\python\generic;..\..\..\source\blender\makesdna;..\..\..\source\blender\blenkernel;..\..\..\source\kernel\gen_system;..\..\..\source\gameengine\physics;..\..\..\source\gameengine\rasterizer;..\..\..\source\gameengine\network;..\..\..\source\gameengine\Converter;..\..\..\source\gameengine\gamelogic;..\..\..\source\gameengine\scenegraph;..\..\..\source\gameengine\expressions;..\..\..\source\gameengine\physics\sumo;..\..\..\source\gameengine\physics\dummy;..\..\..\source\gameengine\physics\BlOde;..\..\..\source\gameengine\ketsji\kxnetwork;..\..\..\source\gameengine\physics\common;..\..\..\source\gameengine\physics\sumo\include;..\..\..\source\gameengine\physics\common\dummy;..\..\..\source\gameengine\Rasterizer\RAS_OpenGLRasterizer;..\..\..\source\gameengine\physics\sumo\fuzzics\include;..\..\..\source\sumo\include;..\..\..\source\sumo\fuzzics\include;..\..\..\source\gameengine\physics\bullet;..\..\..\source\blender\python\api2_2x;..\..\..\source\blender\gpu;..\..\..\intern\audaspace\intern"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;USE_SUMO_SOLID;WITH_GLEXT"
StringPooling="true"
RuntimeLibrary="0"

View File

@@ -35,16 +35,6 @@ BLENDNAME=blender-$(VERSION)-$(CONFIG_GUESS)-py$(NAN_PYTHON_VERSION)$(TYPE)
export DISTDIR=$(NAN_OBJDIR)/$(BLENDNAME)
export CONFDIR=$(DISTDIR)/.blender
ifeq ($(OS),beos)
TAR="zip"
TARFLAGS="-ry9"
EXT0=""
EXT1=".zip"
COMPRESS=""
EXT2=""
NOPLUGINS?=true
endif
ifeq ($(OS),$(findstring $(OS), "freebsd irix linux openbsd solaris"))
TAR="tar"
TARFLAGS="cf"

View File

@@ -727,7 +727,7 @@ class PovrayRender(bpy.types.RenderEngine):
result = self.begin_result(0, 0, x, y)
lay = result.layers[0]
# possible the image wont load early on.
try: lay.rect_from_file(self.temp_file_out, 0, 0)
try: lay.load_from_file(self.temp_file_out)
except: pass
self.end_result(result)

View File

@@ -111,48 +111,3 @@ class bpy_ops_submodule_op(object):
import bpy
bpy.ops = bpy_ops()
# A bit out of place but add button conversion code here
module_type = type(__builtins__)
import types
mod = types.ModuleType('button_convert')
import sys
sys.modules['button_convert'] = mod
def convert(expr):
def replace(string, unit, scaler):
# in need of regex
change = True
while change:
change = False
i = string.find(unit)
if i != -1:
if i>0 and not string[i-1].isalpha():
i_end = i+len(unit)
if i_end+1 >= len(string) or (not string[i_end+1].isalpha()):
string = string.replace(unit, scaler)
change = True
# print(string)
return string
#imperial
expr = replace(expr, 'mi', '*1609.344')
expr = replace(expr, 'yd', '*0.9144')
expr = replace(expr, 'ft', '*0.3048')
expr = replace(expr, 'in', '*0.0254')
# metric
expr = replace(expr, 'km', '*1000')
expr = replace(expr, 'm', '')
expr = replace(expr, 'cm', '*0.01')
expr = replace(expr, 'mm', '*0.001')
return expr
mod.convert = convert

View File

@@ -43,7 +43,7 @@ class DATA_PT_skeleton(DataButtonsPanel):
col = split.column()
col.itemR(arm, "rest_position")
col.itemL(text="Deform:")
col.itemR(arm, "deform_vertexgroups", text="Vertes Groups")
col.itemR(arm, "deform_vertexgroups", text="Vertex Groups")
col.itemR(arm, "deform_envelope", text="Envelopes")
col.itemR(arm, "deform_quaternion", text="Quaternion")
col.itemR(arm, "deform_bbone_rest", text="B-Bones Rest")

View File

@@ -106,12 +106,15 @@ class DATA_PT_vertex_groups(DataButtonsPanel):
row.itemR(group, "name")
if context.edit_object:
row = layout.row(align=True)
row.itemO("object.vertex_group_assign", text="Assign")
row.itemO("object.vertex_group_remove_from", text="Remove")
row.itemO("object.vertex_group_select", text="Select")
row.itemO("object.vertex_group_deselect", text="Deselect")
row = layout.row()
sub = row.row(align=True)
sub.itemO("object.vertex_group_assign", text="Assign")
sub.itemO("object.vertex_group_remove_from", text="Remove")
sub = row.row(align=True)
sub.itemO("object.vertex_group_select", text="Select")
sub.itemO("object.vertex_group_deselect", text="Deselect")
layout.itemR(context.tool_settings, "vertex_group_weight", text="Weight")
@@ -159,7 +162,7 @@ class DATA_PT_shape_keys(DataButtonsPanel):
row.itemR(kb, "value", slider=True)
split = layout.split()
sub = split.column()
sub = split.column(align=True)
sub.enabled = ob.shape_key_lock == False
sub.itemL(text="Range:")
sub.itemR(kb, "slider_min", text="Min")

View File

@@ -333,7 +333,7 @@ class DATA_PT_modifiers(DataButtonsPanel):
layout.itemL(text="See Soft Body panel.")
def SUBSURF(self, layout, ob, md):
layout.itemR(md, "subdivision_type")
layout.row().itemR(md, "subdivision_type", expand=True)
flow = layout.column_flow()
flow.itemR(md, "levels", text="Preview")
@@ -349,9 +349,12 @@ class DATA_PT_modifiers(DataButtonsPanel):
layout.item_pointerR(md, "uv_layer", ob.data, "uv_layers")
#layout.itemR(md, "projectors")
layout.itemR(md, "image")
layout.itemR(md, "horizontal_aspect_ratio")
layout.itemR(md, "vertical_aspect_ratio")
layout.itemR(md, "override_image")
layout.itemL(text="Aspect Ratio:")
col = layout.column(align=True)
col.itemR(md, "horizontal_aspect_ratio", text="Horizontal")
col.itemR(md, "vertical_aspect_ratio", text="Vertical")
#"Projectors" don't work.
def WAVE(self, layout, ob, md):

View File

@@ -19,72 +19,133 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel):
ob = context.active_object
game = ob.game
soft = ob.game.soft_body
layout.itemR(game, "physics_type")
layout.itemS()
split = layout.split()
col = split.column()
col.itemR(game, "actor")
col.itemR(game, "ghost")
col.itemR(ob, "restrict_render", text="Invisible") # out of place but useful
col = split.column()
col.itemR(game, "do_fh", text="Use Material Physics")
col.itemR(game, "rotation_fh", text="Rotate From Normal")
col.itemR(game, "no_sleeping")
layout.itemS()
split = layout.split()
col = split.column()
col.itemL(text="Attributes:")
sub = col.column(align=True)
sub.itemR(game, "mass")
sub.itemR(game, "radius")
sub.itemR(game, "form_factor")
col.itemS()
col.itemL(text="Damping:")
sub = col.column(align=True)
sub.itemR(game, "damping", text="Translation", slider=True)
sub.itemR(game, "rotation_damping", text="Rotation", slider=True)
col = split.column()
col.itemL(text="Velocity:")
sub = col.column(align=True)
sub.itemR(game, "minimum_velocity", text="Minimum")
sub.itemR(game, "maximum_velocity", text="Maximum")
col.itemS()
col.itemR(game, "anisotropic_friction")
sub = col.column()
sub.active = game.anisotropic_friction
sub.itemR(game, "friction_coefficients", text="", slider=True)
layout.itemS()
split = layout.split()
col = split.column()
col.itemL(text="Lock Translation:")
col.itemR(game, "lock_x_axis", text="X")
col.itemR(game, "lock_y_axis", text="Y")
col.itemR(game, "lock_z_axis", text="Z")
col = split.column()
col.itemL(text="Lock Rotation:")
col.itemR(game, "lock_x_rot_axis", text="X")
col.itemR(game, "lock_y_rot_axis", text="Y")
col.itemR(game, "lock_z_rot_axis", text="Z")
#if game.physics_type == 'DYNAMIC':
if game.physics_type in ('DYNAMIC', 'RIGID_BODY'):
split = layout.split()
col = split.column()
col.itemR(game, "actor")
col.itemR(game, "ghost")
col.itemR(ob, "restrict_render", text="Invisible") # out of place but useful
col = split.column()
col.itemR(game, "material_physics")
col.itemR(game, "rotate_from_normal")
col.itemR(game, "no_sleeping")
layout.itemS()
split = layout.split()
col = split.column()
col.itemL(text="Attributes:")
sub = col.column()
sub.itemR(game, "mass")
sub.itemR(game, "radius")
sub.itemR(game, "form_factor")
col = split.column()
sub = col.column()
sub.active = (game.physics_type == 'RIGID_BODY')
sub.itemR(game, "anisotropic_friction")
subsub = sub.column()
subsub.active = game.anisotropic_friction
subsub.itemR(game, "friction_coefficients", text="", slider=True)
split = layout.split()
col = split.column()
col.itemL(text="Velocity:")
sub = col.column(align=True)
sub.itemR(game, "minimum_velocity", text="Minimum")
sub.itemR(game, "maximum_velocity", text="Maximum")
col = split.column()
col.itemL(text="Damping:")
sub = col.column(align=True)
sub.itemR(game, "damping", text="Translation", slider=True)
sub.itemR(game, "rotation_damping", text="Rotation", slider=True)
layout.itemS()
split = layout.split()
col = split.column()
col.itemL(text="Lock Translation:")
col.itemR(game, "lock_x_axis", text="X")
col.itemR(game, "lock_y_axis", text="Y")
col.itemR(game, "lock_z_axis", text="Z")
col = split.column()
col.itemL(text="Lock Rotation:")
col.itemR(game, "lock_x_rot_axis", text="X")
col.itemR(game, "lock_y_rot_axis", text="Y")
col.itemR(game, "lock_z_rot_axis", text="Z")
elif game.physics_type == 'SOFT_BODY':
col = layout.column()
col.itemR(game, "actor")
col.itemR(game, "ghost")
col.itemR(ob, "restrict_render", text="Invisible")
layout.itemS()
split = layout.split()
col = split.column()
col.itemL(text="Attributes:")
col.itemR(game, "mass")
col.itemR(soft, "welding")
col.itemR(soft, "position_iterations")
col.itemR(soft, "linstiff", slider=True)
col.itemR(soft, "dynamic_friction", slider=True)
col.itemR(soft, "margin", slider=True)
col.itemR(soft, "bending_const", text="Bending Constraints")
col = split.column()
col.itemR(soft, "shape_match")
sub = col.column()
sub.active = soft.shape_match
sub.itemR(soft, "threshold", slider=True)
col.itemS()
col.itemL(text="Cluster Collision:")
col.itemR(soft, "cluster_rigid_to_softbody")
col.itemR(soft, "cluster_soft_to_softbody")
sub = col.column()
sub.active = (soft.cluster_rigid_to_softbody or soft.cluster_soft_to_softbody)
sub.itemR(soft, "cluster_iterations", text="Iterations")
elif game.physics_type == 'STATIC':
col = layout.column()
col.itemR(game, "actor")
col.itemR(game, "ghost")
col.itemR(ob, "restrict_render", text="Invisible")
elif game.physics_type in ('SENSOR', 'INVISIBLE', 'NO_COLLISION', 'OCCLUDE'):
col = layout.column()
col.itemR(ob, "restrict_render", text="Invisible")
class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel):
__label__ = "Collision Bounds"
def poll(self, context):
ob = context.active_object
game = ob.game
rd = context.scene.render_data
return (game.physics_type in ('DYNAMIC', 'RIGID_BODY', 'SENSOR', 'SOFT_BODY', 'STATIC')) and (rd.engine == 'BLENDER_GAME')
def draw_header(self, context):
layout = self.layout

View File

@@ -60,15 +60,16 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel):
split.template_ID(ob, "active_material", new="material.new")
row = split.row()
if slot:
row.itemR(slot, "link", expand=True)
row.itemR(slot, "link", text="")
else:
row.itemL()
elif mat:
split.template_ID(space, "pin_id")
split.itemS()
layout.itemR(mat, "type", expand=True)
class MATERIAL_PT_material(MaterialButtonsPanel):
__idname__= "MATERIAL_PT_material"
class MATERIAL_PT_shading(MaterialButtonsPanel):
__label__ = "Shading"
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
@@ -81,30 +82,34 @@ class MATERIAL_PT_material(MaterialButtonsPanel):
space = context.space_data
if mat:
layout.itemR(mat, "type", expand=True)
if mat.type in ('SURFACE', 'WIRE', 'VOLUME'):
split = layout.split()
col = split.column()
col.itemR(mat, "alpha", slider=True)
col.itemR(mat, "ambient", slider=True)
col.active = not mat.shadeless
col.itemR(mat, "ambient")
col.itemR(mat, "emit")
col.itemR(mat, "translucency", slider=True)
col.itemR(mat, "translucency")
col = split.column()
col.itemR(mat, "z_transparency")
col.itemR(mat, "shadeless")
col.itemR(mat, "tangent_shading")
col.itemR(mat, "cubic", slider=True)
sub = col.column()
sub.active = not mat.shadeless
sub.itemR(mat, "tangent_shading")
sub.itemR(mat, "cubic")
elif mat.type == 'HALO':
layout.itemR(mat, "alpha", slider=True)
layout.itemR(mat, "alpha")
class MATERIAL_PT_strand(MaterialButtonsPanel):
__label__ = "Strand"
__default_closed__ = True
COMPAT_ENGINES = set(['BLENDER_RENDER'])
def poll(self, context):
mat = context.material
return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
def draw(self, context):
layout = self.layout
@@ -191,8 +196,9 @@ class MATERIAL_PT_options(MaterialButtonsPanel):
col.itemR(mat, "vertex_color_light")
col.itemR(mat, "object_color")
class MATERIAL_PT_shadows(MaterialButtonsPanel):
__label__ = "Shadows"
class MATERIAL_PT_shadow(MaterialButtonsPanel):
__label__ = "Shadow"
__default_closed__ = True
COMPAT_ENGINES = set(['BLENDER_RENDER', 'BLENDER_GAME'])
def draw(self, context):
@@ -207,16 +213,18 @@ class MATERIAL_PT_shadows(MaterialButtonsPanel):
col.itemR(mat, "transparent_shadows", text="Receive Transparent")
col.itemR(mat, "only_shadow", text="Shadows Only")
col.itemR(mat, "cast_shadows_only", text="Cast Only")
col.itemR(mat, "shadow_casting_alpha", text="Casting Alpha", slider=True)
col.itemR(mat, "shadow_casting_alpha", text="Casting Alpha")
col = split.column()
col.itemR(mat, "cast_buffer_shadows")
sub = col.column()
sub.active = mat.cast_buffer_shadows
sub.itemR(mat, "shadow_buffer_bias", text="Buffer Bias")
col.itemR(mat, "ray_shadow_bias", text="Auto Ray Bias")
sub = col.column()
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")
sub.active = (not mat.ray_shadow_bias)
sub.itemR(mat, "shadow_ray_bias", text="Ray Bias")
class MATERIAL_PT_diffuse(MaterialButtonsPanel):
__label__ = "Diffuse"
@@ -237,7 +245,7 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel):
col.itemR(mat, "diffuse_color", text="")
sub = col.column()
sub.active = (not mat.shadeless)
sub.itemR(mat, "diffuse_reflection", text="Intensity", slider=True)
sub.itemR(mat, "diffuse_reflection", text="Intensity")
col = split.column()
col.active = (not mat.shadeless)
@@ -253,7 +261,7 @@ 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", slider=True)
row.itemR(mat, "diffuse_toon_smooth", text="Smooth")
elif mat.diffuse_shader == 'FRESNEL':
row = col.row()
row.itemR(mat, "diffuse_fresnel", text="Fresnel")
@@ -291,7 +299,7 @@ class MATERIAL_PT_specular(MaterialButtonsPanel):
col = split.column()
col.itemR(mat, "specular_color", text="")
col.itemR(mat, "specular_reflection", text="Intensity", slider=True)
col.itemR(mat, "specular_reflection", text="Intensity")
col = split.column()
col.itemR(mat, "specular_shader", text="")
@@ -309,7 +317,7 @@ 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", slider=True)
row.itemR(mat, "specular_toon_smooth", text="Smooth")
if mat.use_specular_ramp:
layout.itemS()
@@ -352,8 +360,8 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
col = split.column(align=True)
col.itemR(sss, "color", text="")
col.itemL(text="Blend:")
col.itemR(sss, "color_factor", text="Color", slider=True)
col.itemR(sss, "texture_factor", text="Texture", slider=True)
col.itemR(sss, "color_factor", text="Color")
col.itemR(sss, "texture_factor", text="Texture")
col.itemL(text="Scattering Weight:")
col.itemR(sss, "front")
col.itemR(sss, "back")
@@ -365,14 +373,14 @@ class MATERIAL_PT_sss(MaterialButtonsPanel):
col.itemR(sss, "radius", text="RGB Radius")
col.itemR(sss, "error_tolerance")
class MATERIAL_PT_raymir(MaterialButtonsPanel):
__label__ = "Ray Mirror"
class MATERIAL_PT_mirror(MaterialButtonsPanel):
__label__ = "Mirror"
__default_closed__ = True
COMPAT_ENGINES = set(['BLENDER_RENDER'])
def poll(self, context):
mat = context.material
return mat and (mat.type in 'SURFACE', 'WIRE') and (context.scene.render_data.engine in self.COMPAT_ENGINES)
return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
def draw_header(self, context):
layout = self.layout
@@ -392,13 +400,13 @@ class MATERIAL_PT_raymir(MaterialButtonsPanel):
split = layout.split()
col = split.column()
col.itemR(raym, "reflect", text="Reflectivity", slider=True)
col.itemR(raym, "reflect", text="Reflectivity")
col.itemR(mat, "mirror_color", text="")
col.itemL(text="Fresnel:")
col.itemR(raym, "fresnel", text="Amount")
sub = col.column()
sub.active = raym.fresnel > 0
sub.itemR(raym, "fresnel_fac", text="Blend", slider=True)
sub.itemR(raym, "fresnel_factor", text="Blend")
col.itemS()
col.itemS()
sub = col.split(percentage=0.4)
@@ -409,29 +417,28 @@ class MATERIAL_PT_raymir(MaterialButtonsPanel):
col.itemR(raym, "depth")
col.itemR(raym, "distance", text="Max Dist")
col.itemL(text="Gloss:")
col.itemR(raym, "gloss", text="Amount", slider=True)
col.itemR(raym, "gloss", text="Amount")
sub = col.column()
sub.active = raym.gloss < 1
sub.itemR(raym, "gloss_threshold", slider=True, text="Threshold")
sub.itemR(raym, "gloss_threshold", text="Threshold")
sub.itemR(raym, "gloss_samples", text="Samples")
sub.itemR(raym, "gloss_anisotropic", slider=True, text="Anisotropic")
sub.itemR(raym, "gloss_anisotropic", text="Anisotropic")
class MATERIAL_PT_raytransp(MaterialButtonsPanel):
__label__= "Ray Transparency"
class MATERIAL_PT_transp(MaterialButtonsPanel):
__label__= "Transparency"
__default_closed__ = True
COMPAT_ENGINES = set(['BLENDER_RENDER'])
def poll(self, context):
mat = context.material
return mat and (mat.type in 'SURFACE', 'WIRE') and (context.scene.render_data.engine in self.COMPAT_ENGINES)
return mat and (mat.type in ('SURFACE', 'WIRE')) and (context.scene.render_data.engine in self.COMPAT_ENGINES)
def draw_header(self, context):
layout = self.layout
rayt = context.material.raytrace_transparency
layout.itemR(rayt, "enabled", text="")
mat = context.material
layout.itemR(mat, "transparency", text="")
def draw(self, context):
layout = self.layout
@@ -439,36 +446,47 @@ class MATERIAL_PT_raytransp(MaterialButtonsPanel):
mat = context.material
rayt = context.material.raytrace_transparency
layout.active = rayt.enabled and (not mat.shadeless)
row= layout.row()
row.itemR(mat, "transparency_method", expand=True)
row.active = mat.transparency and (not mat.shadeless)
split = layout.split()
col = split.column()
col.itemR(rayt, "ior")
col.itemR(rayt, "falloff")
col.itemR(rayt, "limit")
col = split.column()
col.itemR(rayt, "depth")
col.itemR(rayt, "filter", slider=True)
col.itemR(rayt, "specular_opacity", slider=True, text="Spec Opacity")
split = layout.split()
col.itemL(text="Transparency:")
row = col.row()
row.itemR(mat, "alpha")
row.active = mat.transparency
row = col.row()
row.itemR(mat, "specular_alpha", text="Specular")
row.active = mat.transparency and (not mat.shadeless)
col = split.column()
col.active = mat.transparency and (not mat.shadeless)
col.itemL(text="Fresnel:")
col.itemR(rayt, "fresnel", text="Amount")
sub = col.column()
sub.active = rayt.fresnel > 0
sub.itemR(rayt, "fresnel_fac", text="Blend", slider=True)
col = split.column()
col.itemL(text="Gloss:")
col.itemR(rayt, "gloss", text="Amount", slider=True)
sub = col.column()
sub.active = rayt.gloss < 1
sub.itemR(rayt, "gloss_threshold", slider=True, text="Threshold")
sub.itemR(rayt, "gloss_samples", text="Samples")
sub.itemR(rayt, "fresnel_factor", text="Blend")
if mat.transparency_method == 'RAYTRACE':
split = layout.split()
split.active = mat.transparency and (not mat.shadeless)
col = split.column()
col.itemR(rayt, "ior")
col.itemR(rayt, "filter")
col.itemR(rayt, "falloff")
col.itemR(rayt, "limit")
col.itemR(rayt, "depth")
col = split.column()
col.itemL(text="Gloss:")
col.itemR(rayt, "gloss", text="Amount")
sub = col.column()
sub.active = rayt.gloss < 1
sub.itemR(rayt, "gloss_threshold", text="Threshold")
sub.itemR(rayt, "gloss_samples", text="Samples")
class MATERIAL_PT_halo(MaterialButtonsPanel):
__label__= "Halo"
@@ -490,7 +508,7 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
col.itemR(mat, "diffuse_color", text="")
col.itemR(halo, "size")
col.itemR(halo, "hardness")
col.itemR(halo, "add", slider=True)
col.itemR(halo, "add")
col.itemL(text="Options:")
col.itemR(halo, "use_texture", text="Texture")
col.itemR(halo, "use_vertex_normal", text="Vertex Normal")
@@ -524,14 +542,15 @@ class MATERIAL_PT_halo(MaterialButtonsPanel):
bpy.types.register(MATERIAL_PT_context_material)
bpy.types.register(MATERIAL_PT_preview)
bpy.types.register(MATERIAL_PT_material)
bpy.types.register(MATERIAL_PT_diffuse)
bpy.types.register(MATERIAL_PT_specular)
bpy.types.register(MATERIAL_PT_raymir)
bpy.types.register(MATERIAL_PT_raytransp)
bpy.types.register(MATERIAL_PT_shading)
bpy.types.register(MATERIAL_PT_transp)
bpy.types.register(MATERIAL_PT_mirror)
bpy.types.register(MATERIAL_PT_sss)
bpy.types.register(MATERIAL_PT_halo)
bpy.types.register(MATERIAL_PT_physics)
bpy.types.register(MATERIAL_PT_strand)
bpy.types.register(MATERIAL_PT_options)
bpy.types.register(MATERIAL_PT_shadows)
bpy.types.register(MATERIAL_PT_shadow)

View File

@@ -51,7 +51,9 @@ class OBJECT_PT_relations(ObjectButtonsPanel):
col.itemR(ob, "parent", text="")
sub = col.column()
sub.itemR(ob, "parent_type", text="Type")
split = sub.split(percentage=0.3)
split.itemL(text="Type:")
split.itemR(ob, "parent_type", text="")
parent = ob.parent
if parent and ob.parent_type == 'BONE' and parent.type == 'ARMATURE':
sub.item_pointerR(ob, "parent_bone", parent.data, "bones", text="")

View File

@@ -361,9 +361,9 @@ class ConstraintButtonsPanel(bpy.types.Panel):
def STRETCH_TO(self, layout, con):
self.target_template(layout, con)
col = layout.column(align=True)
col.itemR(con, "original_length", text="Rest Length")
col.itemO("constraint.stretchto_reset")
row = layout.row()
row.itemR(con, "original_length", text="Rest Length")
row.itemO("constraint.stretchto_reset", text="Reset")
col = layout.column()
col.itemR(con, "bulge", text="Volume Variation")
@@ -395,19 +395,21 @@ class ConstraintButtonsPanel(bpy.types.Panel):
row = layout.row()
row.itemR(con, "disable_linked_collision", text="No Collision")
row.itemR(con, "draw_pivot")
row.itemR(con, "draw_pivot", text="Display Pivot")
split = layout.split()
col = split.column()
col.itemR(con, "pivot_x")
col.itemR(con, "pivot_y")
col.itemR(con, "pivot_z")
col = split.column(align=True)
col.itemL(text="Pivot:")
col.itemR(con, "pivot_x", text="X")
col.itemR(con, "pivot_y", text="Y")
col.itemR(con, "pivot_z", text="Z")
col = split.column()
col.itemR(con, "axis_x")
col.itemR(con, "axis_y")
col.itemR(con, "axis_z")
col = split.column(align=True)
col.itemL(text="Axis:")
col.itemR(con, "axis_x", text="X")
col.itemR(con, "axis_y", text="Y")
col.itemR(con, "axis_z", text="Z")
#Missing: Limit arrays (not wrapped in RNA yet)

View File

@@ -32,7 +32,7 @@ class PARTICLE_PT_particles(ParticleButtonsPanel):
if ob:
row = layout.row()
row.template_list(ob, "particle_systems", ob, "active_particle_system_index")
row.template_list(ob, "particle_systems", ob, "active_particle_system_index", rows=2)
col = row.column(align=True)
col.itemO("object.particle_system_add", icon="ICON_ZOOMIN", text="")
@@ -151,6 +151,13 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
psys = context.particle_system
part = psys.settings
cache = psys.point_cache
layout.set_context_pointer("PointCache", cache)
row = layout.row()
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index", rows=2 )
col = row.column(align=True)
col.itemO("ptcache.add_new", icon="ICON_ZOOMIN", text="")
col.itemO("ptcache.remove", icon="ICON_ZOOMOUT", text="")
row = layout.row()
row.itemL(text="File Name:")
@@ -166,37 +173,38 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
layout.itemL(text=cache.info)
split = layout.split()
#split = layout.split()
col = split.column(align=True)
col.itemR(part, "start")
col.itemR(part, "end")
#col = split.column(align=True)
#col.itemR(part, "start")
#col.itemR(part, "end")
col = split.column(align=True)
col.itemR(part, "lifetime")
col.itemR(part, "random_lifetime", slider=True)
#col = split.column(align=True)
#col.itemR(part, "lifetime")
#col.itemR(part, "random_lifetime", slider=True)
else:
layout.itemR(cache, "name", text="")
row = layout.row()
if cache.baked == True:
row.itemO("ptcache.free_bake_particle_system", text="Free Bake")
row.itemO("ptcache.free_bake", text="Free Bake")
else:
row.item_booleanO("ptcache.cache_particle_system", "bake", True, text="Bake")
row.item_booleanO("ptcache.bake", "bake", True, text="Bake")
subrow = row.row()
subrow.enabled = (cache.frames_skipped or cache.outdated) and particle_panel_enabled(psys)
subrow.itemO("ptcache.cache_particle_system", text="Calculate to Current Frame")
subrow.itemO("ptcache.bake", "bake", False, text="Calculate to Current Frame")
row = layout.row()
row.enabled = particle_panel_enabled(psys)
row.itemO("ptcache.bake_from_particles_cache", text="Current Cache to Bake")
row.itemO("ptcache.bake_from_cache", text="Current Cache to Bake")
row.itemR(cache, "step");
row = layout.row()
row.enabled = particle_panel_enabled(psys)
row.itemR(cache, "quick_cache")
subrow = row.row()
subrow.enabled = particle_panel_enabled(psys)
subrow.itemR(cache, "quick_cache")
row.itemR(cache, "disk_cache")
layout.itemL(text=cache.info)
@@ -206,7 +214,7 @@ class PARTICLE_PT_cache(ParticleButtonsPanel):
row = layout.row()
row.item_booleanO("ptcache.bake_all", "bake", True, text="Bake All Dynamics")
row.itemO("ptcache.free_bake_all", text="Free All Bakes")
layout.itemO("ptcache.bake_all", text="Update All Dynamics to current frame")
layout.itemO("ptcache.bake_all", "bake", False, text="Update All Dynamics to current frame")
# for particles these are figured out automatically
#row.itemR(cache, "start_frame")
@@ -703,9 +711,8 @@ class PARTICLE_PT_draw(ParticleButtonsPanel):
col = row.column()
col.itemR(part, "material_color", text="Use material color")
if (path):
box = col.box()
box.itemR(part, "draw_step")
if (path):
col.itemR(part, "draw_step")
else:
subcol = col.column()
subcol.active = part.material_color==False

View File

@@ -16,6 +16,7 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel):
def draw(self, context):
layout = self.layout
md = context.cloth
ob = context.object
@@ -41,27 +42,29 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel):
split = layout.split()
col = split.column()
col.itemR(cloth, "quality", slider=True)
col.itemL(text="Quality:")
col.itemR(cloth, "quality", text="Steps",slider=True)
col.itemL(text="Gravity:")
col.itemR(cloth, "gravity", text="")
col.itemR(cloth, "pin_cloth", text="Pin")
colsub = col.column(align=True)
colsub.active = cloth.pin_cloth
colsub.itemR(cloth, "pin_stiffness", text="Stiffness")
colsub.item_pointerR(cloth, "mass_vertex_group", ob, "vertex_groups", text="")
sub = col.column(align=True)
sub.active = cloth.pin_cloth
sub.itemR(cloth, "pin_stiffness", text="Stiffness")
sub.item_pointerR(cloth, "mass_vertex_group", ob, "vertex_groups", text="")
col = split.column()
col.itemL(text="Presets...")
col.itemL(text="TODO!")
col.itemL(text="Material:")
colsub = col.column(align=True)
colsub.itemR(cloth, "mass")
colsub.itemR(cloth, "structural_stiffness", text="Structural")
colsub.itemR(cloth, "bending_stiffness", text="Bending")
sub = col.column(align=True)
sub.itemR(cloth, "mass")
sub.itemR(cloth, "structural_stiffness", text="Structural")
sub.itemR(cloth, "bending_stiffness", text="Bending")
col.itemL(text="Damping:")
colsub = col.column(align=True)
colsub.itemR(cloth, "spring_damping", text="Spring")
colsub.itemR(cloth, "air_damping", text="Air")
sub = col.column(align=True)
sub.itemR(cloth, "spring_damping", text="Spring")
sub.itemR(cloth, "air_damping", text="Air")
# Disabled for now
"""
@@ -85,6 +88,13 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
layout = self.layout
cache = context.cloth.point_cache
layout.set_context_pointer("PointCache", cache)
row = layout.row()
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index")
col = row.column(align=True)
col.itemO("ptcache.add_new", icon="ICON_ZOOMIN", text="")
col.itemO("ptcache.remove", icon="ICON_ZOOMOUT", text="")
row = layout.row()
row.itemR(cache, "name")
@@ -96,17 +106,17 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
row = layout.row()
if cache.baked == True:
row.itemO("ptcache.free_bake_cloth", text="Free Bake")
row.itemO("ptcache.free_bake", text="Free Bake")
else:
row.item_booleanO("ptcache.cache_cloth", "bake", True, text="Bake")
row.item_booleanO("ptcache.bake", "bake", True, text="Bake")
subrow = row.row()
subrow.enabled = cache.frames_skipped or cache.outdated
subrow.itemO("ptcache.cache_cloth", text="Calculate to Current Frame")
subrow.itemO("ptcache.bake", "bake", False, text="Calculate to Current Frame")
row = layout.row()
#row.enabled = particle_panel_enabled(psys)
row.itemO("ptcache.bake_from_cloth_cache", text="Current Cache to Bake")
row.itemO("ptcache.bake_from_cache", text="Current Cache to Bake")
row.itemR(cache, "step");
row = layout.row()
@@ -121,7 +131,7 @@ class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
row = layout.row()
row.itemO("ptcache.bake_all", "bake", True, text="Bake All Dynamics")
row.itemO("ptcache.free_bake_all", text="Free All Bakes")
layout.itemO("ptcache.bake_all", text="Update All Dynamics to current frame")
layout.itemO("ptcache.bake_all", "bake", False, text="Update All Dynamics to current frame")
class PHYSICS_PT_cloth_collision(PhysicButtonsPanel):
__label__ = "Cloth Collision"
@@ -143,14 +153,14 @@ class PHYSICS_PT_cloth_collision(PhysicButtonsPanel):
layout.active = cloth.enable_collision
col = split.column(align=True)
col = split.column()
col.itemR(cloth, "collision_quality", slider=True, text="Quality")
col.itemR(cloth, "min_distance", slider=True, text="Distance")
col.itemR(cloth, "friction")
col = split.column(align=True)
col = split.column()
col.itemR(cloth, "enable_self_collision", text="Self Collision")
col = col.column(align=True)
col = col.column()
col.active = cloth.enable_self_collision
col.itemR(cloth, "self_collision_quality", slider=True, text="Quality")
col.itemR(cloth, "self_min_distance", slider=True, text="Distance")
@@ -179,15 +189,15 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel):
col = split.column()
col.itemL(text="Structural Stiffness:")
colsub = col.column(align=True)
colsub.itemR(cloth, "structural_stiffness_max", text="Max")
colsub.item_pointerR(cloth, "structural_stiffness_vertex_group", ob, "vertex_groups", text="")
sub = col.column(align=True)
sub.itemR(cloth, "structural_stiffness_max", text="Max")
sub.item_pointerR(cloth, "structural_stiffness_vertex_group", ob, "vertex_groups", text="")
col = split.column()
col.itemL(text="Bending Stiffness:")
colsub = col.column(align=True)
colsub.itemR(cloth, "bending_stiffness_max", text="Max")
colsub.item_pointerR(cloth, "bending_vertex_group", ob, "vertex_groups", text="")
sub = col.column(align=True)
sub.itemR(cloth, "bending_stiffness_max", text="Max")
sub.item_pointerR(cloth, "bending_vertex_group", ob, "vertex_groups", text="")
bpy.types.register(PHYSICS_PT_cloth)
bpy.types.register(PHYSICS_PT_cloth_cache)

View File

@@ -165,46 +165,66 @@ class PHYSICS_PT_collision(PhysicButtonsPanel):
ob = context.object
rd = context.scene.render_data
return (ob and ob.type == 'MESH') and (not rd.use_game_engine)
def draw_header(self, context):
settings = context.object.collision
self.layout.itemR(settings, "enabled", text="")
def draw(self, context):
layout = self.layout
md = context.collision
settings = context.object.collision
layout.active = settings.enabled
split = layout.split()
split.operator_context = 'EXEC_DEFAULT'
if md:
# remove modifier + settings
split.set_context_pointer("modifier", md)
split.itemO("object.modifier_remove", text="Remove")
col = split.column()
#row = split.row(align=True)
#row.itemR(md, "render", text="")
#row.itemR(md, "realtime", text="")
coll = md.settings
else:
# add modifier
split.item_enumO("object.modifier_add", "type", 'COLLISION', text="Add")
split.itemL()
coll = None
col = split.column()
col.itemL(text="Particle:")
col.itemR(settings, "permeability", slider=True)
col.itemL(text="Particle Damping:")
sub = col.column(align=True)
sub.itemR(settings, "damping_factor", text="Factor", slider=True)
sub.itemR(settings, "random_damping", text="Random", slider=True)
if coll:
settings = context.object.collision
layout.active = settings.enabled
col.itemL(text="Soft Body and Cloth:")
sub = col.column(align=True)
sub.itemR(settings, "outer_thickness", text="Outer", slider=True)
sub.itemR(settings, "inner_thickness", text="Inner", slider=True)
split = layout.split()
layout.itemL(text="Force Fields:")
layout.itemR(md, "absorption", text="Absorption")
col = split.column()
col.itemL(text="Particle:")
col.itemR(settings, "permeability", slider=True)
col.itemL(text="Particle Damping:")
sub = col.column(align=True)
sub.itemR(settings, "damping_factor", text="Factor", slider=True)
sub.itemR(settings, "random_damping", text="Random", slider=True)
col = split.column()
col.itemL(text="")
col.itemR(settings, "kill_particles")
col.itemL(text="Particle Friction:")
sub = col.column(align=True)
sub.itemR(settings, "friction_factor", text="Factor", slider=True)
sub.itemR(settings, "random_friction", text="Random", slider=True)
col.itemL(text="Soft Body Damping:")
col.itemR(settings, "damping", text="Factor", slider=True)
col.itemL(text="Soft Body and Cloth:")
sub = col.column(align=True)
sub.itemR(settings, "outer_thickness", text="Outer", slider=True)
sub.itemR(settings, "inner_thickness", text="Inner", slider=True)
layout.itemL(text="Force Fields:")
layout.itemR(md, "absorption", text="Absorption")
col = split.column()
col.itemL(text="")
col.itemR(settings, "kill_particles")
col.itemL(text="Particle Friction:")
sub = col.column(align=True)
sub.itemR(settings, "friction_factor", text="Factor", slider=True)
sub.itemR(settings, "random_friction", text="Random", slider=True)
col.itemL(text="Soft Body Damping:")
col.itemR(settings, "damping", text="Factor", slider=True)
bpy.types.register(PHYSICS_PT_field)
bpy.types.register(PHYSICS_PT_collision)

View File

@@ -51,10 +51,9 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
col = split.column()
col.itemL(text="Resolution:")
sub = col.column()
sub.itemR(fluid, "resolution", text="Final")
sub.itemL(text="Render Display:")
sub.itemR(fluid, "render_display_mode", text="")
col.itemR(fluid, "resolution", text="Final")
col.itemL(text="Render Display:")
col.itemR(fluid, "render_display_mode", text="")
col.itemL(text="Time:")
sub = col.column(align=True)
sub.itemR(fluid, "start_time", text="Start")
@@ -66,8 +65,8 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
col.itemL(text="Viewport Display:")
col.itemR(fluid, "viewport_display_mode", text="")
col.itemL()
col.itemR(fluid, "reverse_frames")
col.itemR(fluid, "generate_speed_vectors")
col.itemR(fluid, "reverse_frames")
layout.itemR(fluid, "path", text="")
@@ -93,12 +92,12 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
col = split.column()
col.itemL(text="Slip Type:")
sub = col.column(align=True)
sub.itemR(fluid, "slip_type", text="")
col.itemR(fluid, "slip_type", text="")
if fluid.slip_type == 'PARTIALSLIP':
sub.itemR(fluid, "partial_slip_amount", slider=True, text="Amount")
col.itemR(fluid, "partial_slip_amount", slider=True, text="Amount")
col.itemR(fluid, "impact_factor")
col.itemL(text="Impact:")
col.itemR(fluid, "impact_factor", text="Factor")
elif fluid.type == 'INFLOW':
split = layout.split()
@@ -124,22 +123,23 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel):
split.column()
elif fluid.type == 'PARTICLE':
split = layout.split()
split = layout.split(percentage=0.5)
col = split.column()
col.itemL(text="Influence:")
sub = col.column(align=True)
sub.itemR(fluid, "particle_influence", text="Size")
sub.itemR(fluid, "alpha_influence", text="Alpha")
layout.itemR(fluid, "path", text="")
col.itemR(fluid, "particle_influence", text="Size")
col.itemR(fluid, "alpha_influence", text="Alpha")
col = split.column()
col.itemL(text="Type:")
col.itemR(fluid, "drops")
col.itemR(fluid, "floats")
col = split.column()
col.itemL()
col.itemR(fluid, "tracer")
layout.itemR(fluid, "path", text="")
elif fluid.type == 'CONTROL':
split = layout.split()

View File

@@ -41,66 +41,119 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel):
layout.itemR(md, "smoke_type", expand=True)
if md.smoke_type == 'TYPE_DOMAIN':
domain = md.domain_settings
split = layout.split()
col = split.column()
col.itemL(text="Resolution:")
col.itemR(domain, "maxres", text="Divisions")
col.itemL(text="Display:")
col.itemR(domain, "visibility", text="Resolution")
col.itemR(domain, "color", slider=True)
sub = col.column()
sub.active = domain.highres
sub.itemR(domain, "viewhighres")
col = split.column()
col.itemL(text="Behavior:")
col.itemR(md.domain_settings, "alpha")
col.itemR(md.domain_settings, "beta")
col.itemL(text="Resolution:")
col.itemR(md.domain_settings, "maxres", text="Low")
col.itemR(domain, "alpha")
col.itemR(domain, "beta")
col.itemR(domain, "dissolve_smoke", text="Dissolve")
sub = col.column()
sub.active = md.domain_settings.highres
sub.itemR(md.domain_settings, "amplify", text="High")
col.itemR(md.domain_settings, "highres", text="Use High Resolution")
col = split.column()
col.itemL(text="Display:")
col.itemR(md.domain_settings, "visibility")
col.itemR(md.domain_settings, "color", slider=True)
sub = col.column()
sub.active = md.domain_settings.highres
sub.itemR(md.domain_settings, "viewhighres")
layout.itemL(text="Noise Type:")
layout.itemR(md.domain_settings, "noise_type", expand=True)
split = layout.split()
col = split.column()
col.itemR(md.domain_settings, "strength")
sub = split.column()
split = layout.split()
col = split.column()
col.itemL(text="Flow Group:")
col.itemR(md.domain_settings, "fluid_group", text="")
#col.itemL(text="Effector Group:")
#col.itemR(md.domain_settings, "eff_group", text="")
col = split.column()
col.itemL(text="Collision Group:")
col.itemR(md.domain_settings, "coll_group", text="")
sub.active = domain.dissolve_smoke
sub.itemR(domain, "dissolve_speed", text="Speed")
sub.itemR(domain, "dissolve_smoke_log", text="Slow")
elif md.smoke_type == 'TYPE_FLOW':
flow = md.flow_settings
split = layout.split()
col = split.column()
col.itemR(md.flow_settings, "outflow")
col.itemR(flow, "outflow")
col.itemL(text="Particle System:")
col.item_pointerR(md.flow_settings, "psys", ob, "particle_systems", text="")
col.item_pointerR(flow, "psys", ob, "particle_systems", text="")
if md.flow_settings.outflow:
col = split.column()
else:
col = split.column()
col.itemL(text="Behavior:")
col.itemR(md.flow_settings, "temperature")
col.itemR(md.flow_settings, "density")
col.itemR(flow, "temperature")
col.itemR(flow, "density")
#elif md.smoke_type == 'TYPE_COLL':
# layout.itemS()
class PHYSICS_PT_smoke_highres(PhysicButtonsPanel):
__label__ = "Smoke High Resolution"
__default_closed__ = True
def poll(self, context):
md = context.smoke
if md:
return (md.smoke_type == 'TYPE_DOMAIN')
return False
bpy.types.register(PHYSICS_PT_smoke)
def draw_header(self, context):
layout = self.layout
high = context.smoke.domain_settings
layout.itemR(high, "highres", text="")
def draw(self, context):
layout = self.layout
high = context.smoke.domain_settings
layout.active = high.highres
split = layout.split()
col = split.column()
col.itemL(text="Resolution:")
col.itemR(high, "amplify", text="Divisions")
sub = split.column()
sub.itemL(text="Noise Method:")
sub.row().itemR(high, "noise_type", text="")
sub.itemR(high, "strength")
class PHYSICS_PT_smoke_groups(PhysicButtonsPanel):
__label__ = "Smoke Groups"
__default_closed__ = True
def poll(self, context):
md = context.smoke
if md:
return (md.smoke_type == 'TYPE_DOMAIN')
return False
def draw(self, context):
layout = self.layout
group = context.smoke.domain_settings
split = layout.split()
col = split.column()
col.itemL(text="Flow Group:")
col.itemR(group, "fluid_group", text="")
#col.itemL(text="Effector Group:")
#col.itemR(group, "eff_group", text="")
col = split.column()
col.itemL(text="Collision Group:")
col.itemR(group, "coll_group", text="")
bpy.types.register(PHYSICS_PT_smoke)
bpy.types.register(PHYSICS_PT_smoke_highres)
bpy.types.register(PHYSICS_PT_smoke_groups)

View File

@@ -63,6 +63,13 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
layout = self.layout
cache = context.soft_body.point_cache
layout.set_context_pointer("PointCache", cache)
row = layout.row()
row.template_list(cache, "point_cache_list", cache, "active_point_cache_index")
col = row.column(align=True)
col.itemO("ptcache.add_new", icon="ICON_ZOOMIN", text="")
col.itemO("ptcache.remove", icon="ICON_ZOOMOUT", text="")
row = layout.row()
row.itemR(cache, "name")
@@ -74,16 +81,16 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
row = layout.row()
if cache.baked == True:
row.itemO("ptcache.free_bake_softbody", text="Free Bake")
row.itemO("ptcache.free_bake", text="Free Bake")
else:
row.item_booleanO("ptcache.cache_softbody", "bake", True, text="Bake")
row.item_booleanO("ptcache.bake", "bake", True, text="Bake")
sub = row.row()
sub.enabled = cache.frames_skipped or cache.outdated
sub.itemO("ptcache.cache_softbody", text="Calculate to Current Frame")
sub.itemO("ptcache.bake", "bake", False, text="Calculate to Current Frame")
row = layout.row()
row.itemO("ptcache.bake_from_softbody_cache", text="Current Cache to Bake")
row.itemO("ptcache.bake_from_cache", text="Current Cache to Bake")
row.itemR(cache, "step");
row = layout.row()
@@ -97,7 +104,7 @@ class PHYSICS_PT_softbody_cache(PhysicButtonsPanel):
row = layout.row()
row.itemO("ptcache.bake_all", "bake", True, text="Bake All Dynamics")
row.itemO("ptcache.free_bake_all", text="Free All Bakes")
layout.itemO("ptcache.bake_all", text="Update All Dynamics to current frame")
layout.itemO("ptcache.bake_all", "bake", False, text="Update All Dynamics to current frame")
class PHYSICS_PT_softbody_goal(PhysicButtonsPanel):
__label__ = "Soft Body Goal"

View File

@@ -430,6 +430,25 @@ class SCENE_PT_stamp(RenderButtonsPanel):
sub.active = rd.stamp_note
sub.itemR(rd, "stamp_note_text", text="")
class SCENE_PT_unit(RenderButtonsPanel):
__label__ = "Units"
__default_closed__ = True
COMPAT_ENGINES = set(['BLENDER_RENDER'])
def draw(self, context):
layout = self.layout
unit = context.scene.unit_settings
col = layout.column()
col.row().itemR(unit, "system", expand=True)
row = layout.row()
row.active = (unit.system != 'NONE')
row.itemR(unit, "scale_length", text="Scale")
row.itemR(unit, "use_separate")
bpy.types.register(SCENE_PT_render)
bpy.types.register(SCENE_PT_layers)
bpy.types.register(SCENE_PT_dimensions)
@@ -440,3 +459,4 @@ bpy.types.register(SCENE_PT_encoding)
bpy.types.register(SCENE_PT_performance)
bpy.types.register(SCENE_PT_post_processing)
bpy.types.register(SCENE_PT_stamp)
bpy.types.register(SCENE_PT_unit)

View File

@@ -67,8 +67,6 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel):
context.texture_paint_object \
):
split.itemR(space, "brush_texture", text="Brush", toggle=True)
layout.itemS()
if tex:
split = layout.split(percentage=0.2)
@@ -137,9 +135,20 @@ class TEXTURE_PT_mapping(TextureButtonsPanel):
row.itemR(tex, "y_mapping", text="")
row.itemR(tex, "z_mapping", text="")
row = layout.row()
row.column().itemR(tex, "offset")
row.column().itemR(tex, "size")
if br:
layout.itemR(tex, "brush_map_mode", expand=True)
row = layout.row()
row.active = tex.brush_map_mode in ('FIXED', 'TILED')
row.itemR(tex, "angle")
row = layout.row()
row.active = tex.brush_map_mode in ('TILED', '3D')
row.column().itemR(tex, "size")
else:
row = layout.row()
row.column().itemR(tex, "offset")
row.column().itemR(tex, "size")
class TEXTURE_PT_influence(TextureButtonsPanel):
__label__ = "Influence"

View File

@@ -55,8 +55,8 @@ class WORLD_PT_world(WorldButtonsPanel):
if world:
row = layout.row()
row.itemR(world, "blend_sky")
row.itemR(world, "paper_sky")
row.itemR(world, "blend_sky")
row.itemR(world, "real_sky")
row = layout.row()
@@ -83,10 +83,11 @@ class WORLD_PT_mist(WorldButtonsPanel):
layout.active = world.mist.enabled
flow = layout.column_flow()
flow.itemR(world.mist, "intensity", slider=True)
flow.itemR(world.mist, "start")
flow.itemR(world.mist, "depth")
flow.itemR(world.mist, "height")
flow.itemR(world.mist, "intensity", slider=True)
layout.itemR(world.mist, "falloff")
@@ -146,12 +147,12 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel):
col.itemL(text="Sampling:")
col.itemR(ao, "sample_method", text="")
sub = col.column(align=True)
sub = col.column()
sub.itemR(ao, "samples")
if ao.sample_method == 'ADAPTIVE_QMC':
sub.itemR(ao, "threshold")
sub.itemR(ao, "adapt_to_speed")
sub.itemR(ao, "adapt_to_speed", slider=True)
elif ao.sample_method == 'CONSTANT_JITTERED':
sub.itemR(ao, "bias")

View File

@@ -5,9 +5,10 @@ class INFO_HT_header(bpy.types.Header):
__space_type__ = "USER_PREFERENCES"
def draw(self, context):
layout = self.layout
st = context.space_data
rd = context.scene.render_data
layout = self.layout
layout.template_header()
@@ -21,8 +22,8 @@ class INFO_HT_header(bpy.types.Header):
row.itemM("INFO_MT_render")
row.itemM("INFO_MT_help")
layout.template_ID(context.window, "screen") #, new="screen.new", open="scene.unlink")
layout.template_ID(context.screen, "scene") #, new="screen.new", unlink="scene.unlink")
layout.template_ID(context.window, "screen", new="screen.new", unlink="screen.delete")
layout.template_ID(context.screen, "scene", new="scene.new", unlink="scene.delete")
if rd.multiple_engines:
layout.itemR(rd, "engine", text="")
@@ -142,6 +143,7 @@ class INFO_MT_render(bpy.types.Menu):
def draw(self, context):
layout = self.layout
rd = context.scene.render_data
layout.itemO("screen.render", text="Render Image")
@@ -174,6 +176,7 @@ class INFO_PT_tabs(bpy.types.Panel):
def draw(self, context):
layout = self.layout
userpref = context.user_preferences
layout.itemR(userpref, "active_section", expand=True)
@@ -189,100 +192,98 @@ class INFO_PT_view(bpy.types.Panel):
def draw(self, context):
layout = self.layout
userpref = context.user_preferences
view = userpref.view
split = layout.split()
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemL(text="Display:")
colsplitcol.itemR(view, "tooltips")
colsplitcol.itemR(view, "display_object_info", text="Object Info")
colsplitcol.itemR(view, "use_large_cursors")
colsplitcol.itemR(view, "show_view_name", text="View Name")
colsplitcol.itemR(view, "show_playback_fps", text="Playback FPS")
colsplitcol.itemR(view, "global_scene")
colsplitcol.itemR(view, "pin_floating_panels")
colsplitcol.itemR(view, "object_center_size")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
sub = col.split(percentage=0.85)
colsplitcol.itemR(view, "show_mini_axis")
colsub = colsplitcol.column()
colsub.enabled = view.show_mini_axis
colsub.itemR(view, "mini_axis_size")
colsub.itemR(view, "mini_axis_brightness")
sub1 = sub.column()
sub1.itemL(text="Display:")
sub1.itemR(view, "tooltips")
sub1.itemR(view, "display_object_info", text="Object Info")
sub1.itemR(view, "use_large_cursors")
sub1.itemR(view, "show_view_name", text="View Name")
sub1.itemR(view, "show_playback_fps", text="Playback FPS")
sub1.itemR(view, "global_scene")
sub1.itemR(view, "pin_floating_panels")
sub1.itemR(view, "object_center_size")
sub1.itemS()
sub1.itemS()
sub1.itemS()
sub1.itemR(view, "show_mini_axis")
sub2 = sub1.column()
sub2.enabled = view.show_mini_axis
sub2.itemR(view, "mini_axis_size")
sub2.itemR(view, "mini_axis_brightness")
col = split.column()
sub = col.split(percentage=0.85)
sub1 = sub.column()
sub1.itemL(text="View Manipulation:")
sub1.itemR(view, "auto_depth")
sub1.itemR(view, "global_pivot")
sub1.itemR(view, "zoom_to_mouse")
sub1.itemR(view, "rotate_around_selection")
sub1.itemS()
sub1.itemL(text="Zoom Style:")
sub1.row().itemR(view, "viewport_zoom_style", expand=True)
sub1.itemL(text="Orbit Style:")
sub1.row().itemR(view, "view_rotation", expand=True)
sub1.itemR(view, "perspective_orthographic_switch")
sub1.itemR(view, "smooth_view")
sub1.itemR(view, "rotation_angle")
sub1.itemS()
sub1.itemL(text="NDOF Device:")
sub1.itemR(view, "ndof_pan_speed", text="Pan Speed")
sub1.itemR(view, "ndof_rotate_speed", text="Orbit Speed")
col = split.column()
sub = col.split(percentage=0.85)
sub1 = sub.column()
sub1.itemL(text="Mouse Buttons:")
sub1.itemR(view, "left_mouse_button_select")
sub1.itemR(view, "right_mouse_button_select")
sub1.itemR(view, "emulate_3_button_mouse")
sub1.itemR(view, "use_middle_mouse_paste")
sub1.itemR(view, "middle_mouse_rotate")
sub1.itemR(view, "middle_mouse_pan")
sub1.itemR(view, "wheel_invert_zoom")
sub1.itemR(view, "wheel_scroll_lines")
sub1.itemS()
sub1.itemS()
sub1.itemS()
sub1.itemL(text="Menus:")
sub1.itemR(view, "open_mouse_over")
sub1.itemL(text="Menu Open Delay:")
sub1.itemR(view, "open_toplevel_delay", text="Top Level")
sub1.itemR(view, "open_sublevel_delay", text="Sub Level")
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemL(text="View Manipulation:")
colsplitcol.itemR(view, "auto_depth")
colsplitcol.itemR(view, "global_pivot")
colsplitcol.itemR(view, "zoom_to_mouse")
colsplitcol.itemR(view, "rotate_around_selection")
colsplitcol.itemL(text="Zoom Style:")
row = colsplitcol.row()
row.itemR(view, "viewport_zoom_style", expand=True)
colsplitcol.itemL(text="Orbit Style:")
row = colsplitcol.row()
row.itemR(view, "view_rotation", expand=True)
colsplitcol.itemR(view, "perspective_orthographic_switch")
colsplitcol.itemR(view, "smooth_view")
colsplitcol.itemR(view, "rotation_angle")
colsplitcol.itemL(text="NDOF Device:")
colsplitcol.itemR(view, "ndof_pan_speed", text="Pan Speed")
colsplitcol.itemR(view, "ndof_rotate_speed", text="Orbit Speed")
sub = col.split(percentage=0.85)
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemL(text="Mouse Buttons:")
colsplitcol.itemR(view, "left_mouse_button_select")
colsplitcol.itemR(view, "right_mouse_button_select")
colsplitcol.itemR(view, "emulate_3_button_mouse")
colsplitcol.itemR(view, "use_middle_mouse_paste")
colsplitcol.itemR(view, "middle_mouse_rotate")
colsplitcol.itemR(view, "middle_mouse_pan")
colsplitcol.itemR(view, "wheel_invert_zoom")
colsplitcol.itemR(view, "wheel_scroll_lines")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemL(text="Menus:")
colsplitcol.itemR(view, "open_mouse_over")
colsplitcol.itemL(text="Menu Open Delay:")
colsplitcol.itemR(view, "open_toplevel_delay", text="Top Level")
colsplitcol.itemR(view, "open_sublevel_delay", text="Sub Level")
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
sub1 = sub.column()
#manipulator
colsplitcol.itemR(view, "use_manipulator")
colsub = colsplitcol.column()
colsub.enabled = view.use_manipulator
colsub.itemR(view, "manipulator_size", text="Size")
colsub.itemR(view, "manipulator_handle_size", text="Handle Size")
colsub.itemR(view, "manipulator_hotspot", text="Hotspot")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemL(text="Toolbox:")
colsplitcol.itemR(view, "use_column_layout")
colsplitcol.itemL(text="Open Toolbox Delay:")
colsplitcol.itemR(view, "open_left_mouse_delay", text="Hold LMB")
colsplitcol.itemR(view, "open_right_mouse_delay", text="Hold RMB")
sub1.itemR(view, "use_manipulator")
sub2 = sub1.column()
sub2.enabled = view.use_manipulator
sub2.itemR(view, "manipulator_size", text="Size")
sub2.itemR(view, "manipulator_handle_size", text="Handle Size")
sub2.itemR(view, "manipulator_hotspot", text="Hotspot")
sub1.itemS()
sub1.itemS()
sub1.itemS()
sub1.itemL(text="Toolbox:")
sub1.itemR(view, "use_column_layout")
sub1.itemL(text="Open Toolbox Delay:")
sub1.itemR(view, "open_left_mouse_delay", text="Hold LMB")
sub1.itemR(view, "open_right_mouse_delay", text="Hold RMB")
class INFO_PT_edit(bpy.types.Panel):
__space_type__ = "USER_PREFERENCES"
__label__ = "Edit"
@@ -294,92 +295,91 @@ class INFO_PT_edit(bpy.types.Panel):
def draw(self, context):
layout = self.layout
userpref = context.user_preferences
edit = userpref.edit
view = userpref.view
split = layout.split()
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemL(text="Materials:")
colsplitcol.itemR(edit, "material_linked_object", text="Linked to Object")
colsplitcol.itemR(edit, "material_linked_obdata", text="Linked to ObData")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemL(text="New Objects:")
colsplitcol.itemR(edit, "enter_edit_mode")
colsplitcol.itemR(edit, "align_to_view")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemL(text="Transform:")
colsplitcol.itemR(edit, "drag_immediately")
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemL(text="Snap:")
colsplitcol.itemR(edit, "snap_translate", text="Translate")
colsplitcol.itemR(edit, "snap_rotate", text="Rotate")
colsplitcol.itemR(edit, "snap_scale", text="Scale")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
sub = col.split(percentage=0.85)
colsplitcol.itemL(text="Grease Pencil:")
colsplitcol.itemR(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
colsplitcol.itemR(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
colsplitcol.itemR(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke")
# colsplitcol.itemR(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke")
colsplitcol.itemR(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemL(text="Keyframing:")
colsplitcol.itemR(edit, "use_visual_keying")
colsplitcol.itemR(edit, "new_interpolation_type")
colsplitcol.itemR(edit, "auto_keying_enable", text="Auto Keyframing")
colsub = colsplitcol.column()
colsub.enabled = edit.auto_keying_enable
row = colsub.row()
row.itemR(edit, "auto_keying_mode", expand=True)
colsub.itemR(edit, "auto_keyframe_insert_available", text="Only Insert Available")
colsub.itemR(edit, "auto_keyframe_insert_needed", text="Only Insert Needed")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemL(text="Undo:")
colsplitcol.itemR(edit, "global_undo")
colsplitcol.itemR(edit, "undo_steps", text="Steps")
colsplitcol.itemR(edit, "undo_memory_limit", text="Memory Limit")
colsplitcol.itemS()
colsplitcol.itemS()
colsplitcol.itemS()
sub1 = sub.column()
sub1.itemL(text="Materials:")
sub1.itemR(edit, "material_linked_object", text="Linked to Object")
sub1.itemR(edit, "material_linked_obdata", text="Linked to ObData")
sub1.itemS()
sub1.itemS()
sub1.itemS()
sub1.itemL(text="New Objects:")
sub1.itemR(edit, "enter_edit_mode")
sub1.itemR(edit, "align_to_view")
sub1.itemS()
sub1.itemS()
sub1.itemS()
sub1.itemL(text="Transform:")
sub1.itemR(edit, "drag_immediately")
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemL(text="Duplicate:")
colsplitcol.itemR(edit, "duplicate_mesh", text="Mesh")
colsplitcol.itemR(edit, "duplicate_surface", text="Surface")
colsplitcol.itemR(edit, "duplicate_curve", text="Curve")
colsplitcol.itemR(edit, "duplicate_text", text="Text")
colsplitcol.itemR(edit, "duplicate_metaball", text="Metaball")
colsplitcol.itemR(edit, "duplicate_armature", text="Armature")
colsplitcol.itemR(edit, "duplicate_lamp", text="Lamp")
colsplitcol.itemR(edit, "duplicate_material", text="Material")
colsplitcol.itemR(edit, "duplicate_texture", text="Texture")
colsplitcol.itemR(edit, "duplicate_ipo", text="F-Curve")
colsplitcol.itemR(edit, "duplicate_action", text="Action")
sub = col.split(percentage=0.85)
sub1 = sub.column()
sub1.itemL(text="Snap:")
sub1.itemR(edit, "snap_translate", text="Translate")
sub1.itemR(edit, "snap_rotate", text="Rotate")
sub1.itemR(edit, "snap_scale", text="Scale")
sub1.itemS()
sub1.itemS()
sub1.itemS()
sub1.itemL(text="Grease Pencil:")
sub1.itemR(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
sub1.itemR(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
sub1.itemR(edit, "grease_pencil_smooth_stroke", text="Smooth Stroke")
# sub1.itemR(edit, "grease_pencil_simplify_stroke", text="Simplify Stroke")
sub1.itemR(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
col = split.column()
sub = col.split(percentage=0.85)
sub1 = sub.column()
sub1.itemL(text="Keyframing:")
sub1.itemR(edit, "use_visual_keying")
sub1.itemR(edit, "new_interpolation_type")
sub1.itemS()
sub1.itemR(edit, "auto_keying_enable", text="Auto Keyframing")
sub2 = sub1.column()
sub2.enabled = edit.auto_keying_enable
sub2.row().itemR(edit, "auto_keying_mode", expand=True)
sub2.itemR(edit, "auto_keyframe_insert_available", text="Only Insert Available")
sub2.itemR(edit, "auto_keyframe_insert_needed", text="Only Insert Needed")
sub1.itemS()
sub1.itemS()
sub1.itemS()
sub1.itemL(text="Undo:")
sub1.itemR(edit, "global_undo")
sub1.itemR(edit, "undo_steps", text="Steps")
sub1.itemR(edit, "undo_memory_limit", text="Memory Limit")
sub1.itemS()
sub1.itemS()
sub1.itemS()
col = split.column()
sub = col.split(percentage=0.85)
sub1 = sub.column()
sub1.itemL(text="Duplicate:")
sub1.itemR(edit, "duplicate_mesh", text="Mesh")
sub1.itemR(edit, "duplicate_surface", text="Surface")
sub1.itemR(edit, "duplicate_curve", text="Curve")
sub1.itemR(edit, "duplicate_text", text="Text")
sub1.itemR(edit, "duplicate_metaball", text="Metaball")
sub1.itemR(edit, "duplicate_armature", text="Armature")
sub1.itemR(edit, "duplicate_lamp", text="Lamp")
sub1.itemR(edit, "duplicate_material", text="Material")
sub1.itemR(edit, "duplicate_texture", text="Texture")
sub1.itemR(edit, "duplicate_ipo", text="F-Curve")
sub1.itemR(edit, "duplicate_action", text="Action")
class INFO_PT_system(bpy.types.Panel):
__space_type__ = "USER_PREFERENCES"
@@ -392,61 +392,75 @@ class INFO_PT_system(bpy.types.Panel):
def draw(self, context):
layout = self.layout
userpref = context.user_preferences
system = userpref.system
lan = userpref.language
split = layout.split()
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
colsplitcol.itemR(system, "emulate_numpad")
colsplitcol.itemS()
colsplitcol.itemS()
#Weight Colors
colsplitcol.itemL(text="Weight Colors:")
colsplitcol.itemR(system, "use_weight_color_range", text="Use Custom Range")
colsub = colsplitcol.column()
colsub.active = system.use_weight_color_range
colsub.template_color_ramp(system.weight_color_range, expand=True)
colsplitcol.itemS()
colsplitcol.itemS()
col = split.column()
sub = col.split(percentage=0.85)
sub1 = sub.column()
sub1.itemR(system, "emulate_numpad")
sub1.itemS()
sub1.itemS()
#Weight Colors
sub1.itemL(text="Weight Colors:")
sub1.itemR(system, "use_weight_color_range", text="Use Custom Range")
sub2 = sub1.column()
sub2.active = system.use_weight_color_range
sub2.template_color_ramp(system.weight_color_range, expand=True)
sub1.itemS()
sub1.itemS()
#sequencer
colsplitcol.itemL(text="Sequencer:")
colsplitcol.itemR(system, "prefetch_frames")
colsplitcol.itemR(system, "memory_cache_limit")
sub1.itemL(text="Sequencer:")
sub1.itemR(system, "prefetch_frames")
sub1.itemR(system, "memory_cache_limit")
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
sub = col.split(percentage=0.85)
sub1 = sub .column()
#System
colsplitcol.itemL(text="System:")
colsplitcol.itemR(lan, "dpi")
colsplitcol.itemR(system, "enable_all_codecs")
colsplitcol.itemR(system, "auto_run_python_scripts")
colsplitcol.itemR(system, "frame_server_port")
colsplitcol.itemR(system, "game_sound")
colsplitcol.itemR(system, "filter_file_extensions")
colsplitcol.itemR(system, "hide_dot_files_datablocks")
colsplitcol.itemR(system, "audio_mixing_buffer")
colsplitcol.itemR(lan, "scrollback", text="Console Scrollback")
sub1.itemL(text="System:")
sub1.itemR(lan, "dpi")
sub1.itemR(system, "auto_run_python_scripts")
sub1.itemR(system, "frame_server_port")
sub1.itemR(system, "filter_file_extensions")
sub1.itemR(system, "hide_dot_files_datablocks")
sub1.itemR(lan, "scrollback", text="Console Scrollback")
sub1.itemS()
sub1.itemS()
sub1.itemL(text="Sound:")
sub1.itemR(system, "audio_device")
sub2 = sub1.column()
sub2.active = system.audio_device != 'AUDIO_DEVICE_NULL'
sub2.itemR(system, "enable_all_codecs")
sub2.itemR(system, "game_sound")
sub2.itemR(system, "audio_channels")
sub2.itemR(system, "audio_mixing_buffer")
sub2.itemR(system, "audio_sample_rate")
sub2.itemR(system, "audio_sample_format")
col = split.column()
colsplit = col.split(percentage=0.85)
colsplitcol = colsplit.column()
sub = col.split(percentage=0.85)
sub1 = sub.column()
#OpenGL
colsplitcol.itemL(text="OpenGL:")
colsplitcol.itemR(system, "clip_alpha", slider=True)
colsplitcol.itemR(system, "use_mipmaps")
colsplitcol.itemL(text="Window Draw Method:")
row = colsplitcol.row()
row.itemR(system, "window_draw_method", expand=True)
colsplitcol.itemL(text="Textures:")
colsplitcol.itemR(system, "gl_texture_limit", text="Limit Size")
colsplitcol.itemR(system, "texture_time_out", text="Time Out")
colsplitcol.itemR(system, "texture_collection_rate", text="Collection Rate")
sub1.itemL(text="OpenGL:")
sub1.itemR(system, "clip_alpha", slider=True)
sub1.itemR(system, "use_mipmaps")
sub1.itemL(text="Window Draw Method:")
sub1.row().itemR(system, "window_draw_method", expand=True)
sub1.itemL(text="Textures:")
sub1.itemR(system, "gl_texture_limit", text="Limit Size")
sub1.itemR(system, "texture_time_out", text="Time Out")
sub1.itemR(system, "texture_collection_rate", text="Collection Rate")
class INFO_PT_filepaths(bpy.types.Panel):
__space_type__ = "USER_PREFERENCES"
@@ -459,53 +473,55 @@ class INFO_PT_filepaths(bpy.types.Panel):
def draw(self, context):
layout = self.layout
userpref = context.user_preferences
paths = userpref.filepaths
split = layout.split()
col = split.column()
col.itemL(text="File Paths:")
splitcol = col.split(percentage=0.3)
sub = col.split(percentage=0.3)
splitcol.itemL(text="Fonts:")
splitcol.itemR(paths, "fonts_directory", text="")
splitcol = col.split(percentage=0.3)
splitcol.itemL(text="Textures:")
splitcol.itemR(paths, "textures_directory", text="")
splitcol = col.split(percentage=0.3)
splitcol.itemL(text="Texture Plugins:")
splitcol.itemR(paths, "texture_plugin_directory", text="")
splitcol = col.split(percentage=0.3)
splitcol.itemL(text="Sequence Plugins:")
splitcol.itemR(paths, "sequence_plugin_directory", text="")
splitcol = col.split(percentage=0.3)
splitcol.itemL(text="Render Output:")
splitcol.itemR(paths, "render_output_directory", text="")
splitcol = col.split(percentage=0.3)
splitcol.itemL(text="Scripts:")
splitcol.itemR(paths, "python_scripts_directory", text="")
splitcol = col.split(percentage=0.3)
splitcol.itemL(text="Sounds:")
splitcol.itemR(paths, "sounds_directory", text="")
splitcol = col.split(percentage=0.3)
splitcol.itemL(text="Temp:")
splitcol.itemR(paths, "temporary_directory", text="")
sub.itemL(text="Fonts:")
sub.itemR(paths, "fonts_directory", text="")
sub = col.split(percentage=0.3)
sub.itemL(text="Textures:")
sub.itemR(paths, "textures_directory", text="")
sub = col.split(percentage=0.3)
sub.itemL(text="Texture Plugins:")
sub.itemR(paths, "texture_plugin_directory", text="")
sub = col.split(percentage=0.3)
sub.itemL(text="Sequence Plugins:")
sub.itemR(paths, "sequence_plugin_directory", text="")
sub = col.split(percentage=0.3)
sub.itemL(text="Render Output:")
sub.itemR(paths, "render_output_directory", text="")
sub = col.split(percentage=0.3)
sub.itemL(text="Scripts:")
sub.itemR(paths, "python_scripts_directory", text="")
sub = col.split(percentage=0.3)
sub.itemL(text="Sounds:")
sub.itemR(paths, "sounds_directory", text="")
sub = col.split(percentage=0.3)
sub.itemL(text="Temp:")
sub.itemR(paths, "temporary_directory", text="")
col = split.column()
colsplit = col.split(percentage=0.2)
colsplitcol = colsplit.column()
colsplitcol = colsplit.column()
colsplitcol.itemL(text="Save & Load:")
colsplitcol.itemR(paths, "use_relative_paths")
colsplitcol.itemR(paths, "compress_file")
colsplitcol.itemL(text="Auto Save:")
colsplitcol.itemR(paths, "save_version")
colsplitcol.itemR(paths, "recent_files")
colsplitcol.itemR(paths, "save_preview_images")
colsplitcol.itemR(paths, "auto_save_temporary_files")
colsub = colsplitcol.column()
colsub.enabled = paths.auto_save_temporary_files
colsub.itemR(paths, "auto_save_time")
sub = col.split(percentage=0.2)
sub1 = sub.column()
sub2 = sub.column()
sub2.itemL(text="Save & Load:")
sub2.itemR(paths, "use_relative_paths")
sub2.itemR(paths, "compress_file")
sub2.itemL(text="Auto Save:")
sub2.itemR(paths, "save_version")
sub2.itemR(paths, "recent_files")
sub2.itemR(paths, "save_preview_images")
sub2.itemR(paths, "auto_save_temporary_files")
sub3 = sub2.column()
sub3.enabled = paths.auto_save_temporary_files
sub3.itemR(paths, "auto_save_time")
class INFO_PT_language(bpy.types.Panel):
__space_type__ = "USER_PREFERENCES"
@@ -518,6 +534,7 @@ class INFO_PT_language(bpy.types.Panel):
def draw(self, context):
layout = self.layout
userpref = context.user_preferences
lan = userpref.language
@@ -614,4 +631,3 @@ bpy.ops.add(HELP_OT_blender_website)
bpy.ops.add(HELP_OT_blender_eshop)
bpy.ops.add(HELP_OT_developer_community)
bpy.ops.add(HELP_OT_user_community)

View File

@@ -10,18 +10,17 @@ class SEQUENCER_HT_header(bpy.types.Header):
__space_type__ = "SEQUENCE_EDITOR"
def draw(self, context):
layout = self.layout
st = context.space_data
layout = self.layout
layout.template_header()
if context.area.show_menus:
row = layout.row()
row.itemR(st, "display_mode", text="")
row.itemM("SEQUENCER_MT_view")
row.itemR(st, "display_mode")
layout.itemS()
if st.display_mode == 'SEQUENCER':
@@ -32,14 +31,15 @@ class SEQUENCER_HT_header(bpy.types.Header):
layout.itemS()
row.itemO("sequencer.reload")
else:
row.itemR(st, "display_channel") # text="Chan"
row.itemR(st, "display_channel", text="Channel")
class SEQUENCER_MT_view(bpy.types.Menu):
__space_type__ = "SEQUENCE_EDITOR"
__label__ = "View (TODO)"
__label__ = "View"
def draw(self, context):
layout = self.layout
st = context.space_data
layout.column()
@@ -76,6 +76,7 @@ class SEQUENCER_MT_view(bpy.types.Menu):
layout.itemO("sequencer.view_all")
layout.itemO("sequencer.view_selected")
layout.itemS()
layout.itemO("screen.screen_full_area", text="Toggle Full Screen")
"""
@@ -106,6 +107,7 @@ class SEQUENCER_MT_select(bpy.types.Menu):
def draw(self, context):
layout = self.layout
st = context.space_data
layout.column()
@@ -126,17 +128,18 @@ class SEQUENCER_MT_marker(bpy.types.Menu):
def draw(self, context):
layout = self.layout
st = context.space_data
layout.column()
layout.itemO("sequencer.sound_strip_add", text="Add Marker|Ctrl Alt M")
layout.itemO("sequencer.sound_strip_add", text="Duplicate Marker|Ctrl Shift D")
layout.itemO("sequencer.sound_strip_add", text="Delete Marker|Shift X")
layout.itemO("marker.add", text="Add Marker")
layout.itemO("marker.duplicate", text="Duplicate Marker")
layout.itemO("marker.move", text="Grab/Move Marker")
layout.itemO("marker.delete", text="Delete Marker")
layout.itemS()
layout.itemO("sequencer.sound_strip_add", text="(Re)Name Marker|Ctrl M")
layout.itemO("sequencer.sound_strip_add", text="Grab/Move Marker|Ctrl G")
layout.itemS()
layout.itemO("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
layout.itemL(text="ToDo: Name Marker")
#layout.itemO("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
class SEQUENCER_MT_add(bpy.types.Menu):
__space_type__ = "SEQUENCE_EDITOR"
@@ -144,6 +147,7 @@ class SEQUENCER_MT_add(bpy.types.Menu):
def draw(self, context):
layout = self.layout
st = context.space_data
layout.column()
@@ -154,29 +158,29 @@ class SEQUENCER_MT_add(bpy.types.Menu):
layout.itemM("SEQUENCER_MT_add_effect")
class SEQUENCER_MT_add_effect(bpy.types.Menu):
__space_type__ = "SEQUENCE_EDITOR"
__label__ = "Effect Strip..."
def draw(self, context):
layout = self.layout
st = context.space_data
self.layout.column()
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'ADD')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'SUBTRACT')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_OVER')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_UNDER')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'GAMMA_CROSS')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'MULTIPLY')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'OVER_DROP')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'PLUGIN')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'WIPE')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'GLOW')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'TRANSFORM')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'COLOR')
self.layout.item_enumO("sequencer.effect_strip_add", 'type', 'SPEED')
layout.column()
layout.item_enumO("sequencer.effect_strip_add", 'type', 'ADD')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'SUBTRACT')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_OVER')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'ALPHA_UNDER')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'GAMMA_CROSS')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'MULTIPLY')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'OVER_DROP')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'PLUGIN')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'WIPE')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'GLOW')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'TRANSFORM')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'COLOR')
layout.item_enumO("sequencer.effect_strip_add", 'type', 'SPEED')
class SEQUENCER_MT_strip(bpy.types.Menu):
__space_type__ = "SEQUENCE_EDITOR"
@@ -184,6 +188,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
def draw(self, context):
layout = self.layout
st = context.space_data
layout.operator_context = 'INVOKE_REGION_WIN'
@@ -266,35 +271,47 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel):
strip = act_strip(context)
layout.itemR(strip, "name")
split = layout.split(percentage=0.3)
split.itemL(text="Name:")
split.itemR(strip, "name", text="")
layout.itemR(strip, "type")
split = layout.split(percentage=0.3)
split.itemL(text="Type:")
split.itemR(strip, "type", text="")
layout.itemR(strip, "blend_mode")
split = layout.split(percentage=0.3)
split.itemL(text="Blend:")
split.itemR(strip, "blend_mode", text="")
layout.itemR(strip, "blend_opacity", text="Opacity", slider=True)
row = layout.row()
if strip.mute == True:
row.itemR(strip, "mute", toggle=True, icon='ICON_RESTRICT_VIEW_ON', text="")
elif strip.mute == False:
row.itemR(strip, "mute", toggle=True, icon='ICON_RESTRICT_VIEW_OFF', text="")
split = layout.split()
sub = row.row()
sub.active = (not strip.mute)
col = split.column()
col.itemR(strip, "mute")
col.itemR(strip, "lock")
col.itemR(strip, "frame_locked")
sub.itemR(strip, "blend_opacity", text="Opacity", slider=True)
col = split.column()
row = layout.row()
row.itemR(strip, "lock")
row.itemR(strip, "frame_locked", text="Frame Lock")
col = layout.column()
col.itemR(strip, "channel")
col.itemR(strip, "start_frame")
col.itemR(strip, "length")
split = layout.split()
col = layout.column(align=True)
col.itemL(text="Offset:")
col.itemR(strip, "start_offset", text="Start")
col.itemR(strip, "end_offset", text="End")
col = split.column()
col.itemR(strip, "start_offset")
col.itemR(strip, "start_still")
col = split.column()
col.itemR(strip, "end_offset")
col.itemR(strip, "end_still")
col = layout.column(align=True)
col.itemL(text="Still:")
col.itemR(strip, "start_still", text="Start")
col.itemR(strip, "end_still", text="End")
class SEQUENCER_PT_effect(SequencerButtonsPanel):
__label__ = "Effect Strip"
@@ -318,23 +335,21 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
layout.itemR(strip, "color")
elif strip.type == 'WIPE':
row = layout.row()
row.itemL(text="Transition Type:")
row.itemL(text="Direction:")
row = layout.row()
row.itemR(strip, "transition_type", text="")
row.itemR(strip, "direction", text="")
col = layout.column()
col.itemR(strip, "transition_type")
col.itemL(text="Direction:")
col.row().itemR(strip, "direction", expand=True)
row = layout.row()
row.itemR(strip, "blur_width")
col = layout.column()
col.itemR(strip, "blur_width", slider=True)
if strip.transition_type in ('SINGLE', 'DOUBLE'):
row.itemR(strip, "angle")
col.itemR(strip, "angle")
elif strip.type == 'GLOW':
flow = layout.column_flow()
flow.itemR(strip, "threshold")
flow.itemR(strip, "clamp")
flow.itemR(strip, "threshold", slider=True)
flow.itemR(strip, "clamp", slider=True)
flow.itemR(strip, "boost_factor")
flow.itemR(strip, "blur_distance")
@@ -351,42 +366,39 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
flow.itemR(strip, "frame_blending")
elif strip.type == 'TRANSFORM':
row = layout.row()
row.itemL(text="Interpolation:")
row.itemL(text="Translation Unit:")
row = layout.row()
row.itemR(strip, "interpolation", text="")
row.itemR(strip, "translation_unit", text="")
col = layout.column()
col.itemR(strip, "interpolation")
col.itemR(strip, "translation_unit")
split = layout.split()
col = layout.column(align=True)
col.itemL(text="Position X:")
col.itemR(strip, "translate_start_x", text="Start")
col.itemR(strip, "translate_end_x", text="End")
col = split.column()
sub = col.column(align=True)
sub.itemL(text="Position X:")
sub.itemR(strip, "translate_start_x", text="Start")
sub.itemR(strip, "translate_end_x", text="End")
col = layout.column(align=True)
col.itemL(text="Position Y:")
col.itemR(strip, "translate_start_y", text="Start")
col.itemR(strip, "translate_end_y", text="End")
sub = col.column(align=True)
sub.itemL(text="Scale X:")
sub.itemR(strip, "scale_start_x", text="Start")
sub.itemR(strip, "scale_end_x", text="End")
layout.itemS()
sub = col.column(align=True)
sub.itemL(text="Rotation:")
sub.itemR(strip, "rotation_start", text="Start")
sub.itemR(strip, "rotation_end", text="End")
col = layout.column(align=True)
col.itemL(text="Scale X:")
col.itemR(strip, "scale_start_x", text="Start")
col.itemR(strip, "scale_end_x", text="End")
col = split.column()
sub = col.column(align=True)
sub.itemL(text="Position Y:")
sub.itemR(strip, "translate_start_y", text="Start")
sub.itemR(strip, "translate_end_y", text="End")
col = layout.column(align=True)
col.itemL(text="Scale Y:")
col.itemR(strip, "scale_start_y", text="Start")
col.itemR(strip, "scale_end_y", text="End")
sub = col.column(align=True)
sub.itemL(text="Scale Y:")
sub.itemR(strip, "scale_start_y", text="Start")
sub.itemR(strip, "scale_end_y", text="End")
layout.itemS()
col = layout.column(align=True)
col.itemL(text="Rotation:")
col.itemR(strip, "rotation_start", text="Start")
col.itemR(strip, "rotation_end", text="End")
class SEQUENCER_PT_input(SequencerButtonsPanel):
__label__ = "Strip Input"
@@ -406,42 +418,38 @@ class SEQUENCER_PT_input(SequencerButtonsPanel):
strip = act_strip(context)
split = layout.split(percentage=0.3)
sub = split.column()
sub.itemL(text="Directory:")
sub = split.column()
sub.itemR(strip, "directory", text="")
layout.itemR(strip, "directory", text="")
# Current element for the filename
split = layout.split(percentage=0.3)
sub = split.column()
sub.itemL(text="File Name:")
sub = split.column()
col = split.column()
col.itemL(text="File Name:")
col = split.column()
elem = strip.getStripElem(context.scene.current_frame)
if elem:
sub.itemR(elem, "filename", text="") # strip.elements[0] could be a fallback
col.itemR(elem, "filename", text="") # strip.elements[0] could be a fallback
layout.itemR(strip, "use_translation")
layout.itemR(strip, "use_translation", text="Image Offset:")
if strip.transform:
flow = layout.column_flow()
flow.active = strip.use_translation
flow.itemR(strip.transform, "offset_x")
flow.itemR(strip.transform, "offset_y")
layout.itemR(strip, "use_crop")
col = layout.column(align=True)
col.active = strip.use_translation
col.itemR(strip.transform, "offset_x", text="X")
col.itemR(strip.transform, "offset_y", text="Y")
layout.itemR(strip, "use_crop", text="Image Crop:")
if strip.crop:
flow = layout.column_flow()
flow.active = strip.use_crop
flow.itemR(strip.crop, "top")
flow.itemR(strip.crop, "left")
flow.itemR(strip.crop, "bottom")
flow.itemR(strip.crop, "right")
layout.itemR(strip, "animation_start_offset")
layout.itemR(strip, "animation_end_offset")
col = layout.column(align=True)
col.active = strip.use_crop
col.itemR(strip.crop, "top")
col.itemR(strip.crop, "left")
col.itemR(strip.crop, "bottom")
col.itemR(strip.crop, "right")
col = layout.column(align=True)
col.itemL(text="Trim Duration:")
col.itemR(strip, "animation_start_offset", text="Start")
col.itemR(strip, "animation_end_offset", text="End")
class SEQUENCER_PT_filter(SequencerButtonsPanel):
__label__ = "Filter"
@@ -460,17 +468,19 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel):
layout = self.layout
strip = act_strip(context)
col = layout.column()
col.itemL(text="Video:")
col.itemR(strip, "strobe")
col.itemR(strip, "de_interlace")
split = layout.split()
col = split.column()
col = layout.column()
col.itemL(text="Colors:")
col.itemR(strip, "multiply_colors", text="Multiply")
col.itemR(strip, "premultiply")
col.itemR(strip, "convert_float")
col.itemR(strip, "de_interlace")
col.itemR(strip, "multiply_colors")
col.itemR(strip, "strobe")
col = split.column()
col = layout.column()
col.itemL(text="Flip:")
col.itemR(strip, "flip_x", text="X")
col.itemR(strip, "flip_y", text="Y")
@@ -482,14 +492,13 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel):
row.active = strip.use_color_balance
col = row.column()
col.itemR(strip.color_balance, "lift")
col.itemR(strip.color_balance, "inverse_lift")
col.itemR(strip.color_balance, "inverse_lift", text="Inverse")
col = row.column()
col.itemR(strip.color_balance, "gamma")
col.itemR(strip.color_balance, "inverse_gamma")
col.itemR(strip.color_balance, "inverse_gamma", text="Inverse")
col = row.column()
col.itemR(strip.color_balance, "gain")
col.itemR(strip.color_balance, "inverse_gain")
col.itemR(strip.color_balance, "inverse_gain", text="Inverse")
class SEQUENCER_PT_proxy(SequencerButtonsPanel):
__label__ = "Proxy"
@@ -505,36 +514,34 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel):
return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
def draw_header(self, context):
strip = act_strip(context)
layout = self.layout
strip = act_strip(context)
layout.itemR(strip, "use_proxy", text="")
def draw(self, context):
strip = act_strip(context)
layout = self.layout
strip = act_strip(context)
flow = layout.column_flow()
flow.itemR(strip, "proxy_custom_directory")
if strip.proxy: # TODO - need to add this somehow
flow.itemR(strip.proxy, "directory")
flow.itemR(strip.proxy, "file")
class SEQUENCER_PT_view(SequencerButtonsPanel_Output):
__label__ = "View Settings"
def draw(self, context):
layout = self.layout
st = context.space_data
layout = self.layout
flow = layout.column_flow()
flow.itemR(st, "draw_overexposed") # text="Zebra"
flow.itemR(st, "draw_safe_margin")
col = layout.column()
col.itemR(st, "draw_overexposed") # text="Zebra"
col.itemR(st, "draw_safe_margin")
bpy.types.register(SEQUENCER_HT_header) # header/menu classes
bpy.types.register(SEQUENCER_MT_view)

130
release/ui/space_time.py Normal file
View File

@@ -0,0 +1,130 @@
import bpy
class TIME_HT_header(bpy.types.Header):
__space_type__ = "TIMELINE"
def draw(self, context):
layout = self.layout
st = context.space_data
scene = context.scene
rd = context.scene.render_data
tools = context.tool_settings
screen = context.screen
layout.template_header()
if context.area.show_menus:
row = layout.row()
row.itemM("TIME_MT_view")
row.itemM("TIME_MT_frame")
row.itemM("TIME_MT_playback")
layout.itemR(scene, "use_preview_range", text="PR", toggle=True)
layout.itemS()
row = layout.row(align=True)
if not scene.use_preview_range:
row.itemR(scene, "start_frame", text="Start")
row.itemR(scene, "end_frame", text="End")
else:
row.itemR(scene, "preview_range_start_frame", text="Start")
row.itemR(scene, "preview_range_end_frame", text="End")
layout.itemS()
layout.itemR(scene, "current_frame", text="")
layout.itemS()
row = layout.row(align=True)
row.item_booleanO("screen.frame_jump", "end", False, text="", icon='ICON_REW')
row.item_booleanO("screen.keyframe_jump", "next", False, text="", icon='ICON_PREV_KEYFRAME')
if not screen.animation_playing:
row.item_booleanO("screen.animation_play", "reverse", True, text="", icon='ICON_PLAY_REVERSE')
row.itemO("screen.animation_play", text="", icon='ICON_PLAY')
else:
sub = row.row()
sub.scale_x = 2.0
sub.itemO("screen.animation_play", text="", icon='ICON_PAUSE')
row.item_booleanO("screen.keyframe_jump", "next", True, text="", icon='ICON_NEXT_KEYFRAME')
row.item_booleanO("screen.frame_jump", "end", True, text="", icon='ICON_FF')
layout.itemS()
layout.itemR(rd, "sync_audio", text="", toggle=True, icon='ICON_SPEAKER')
layout.itemS()
row = layout.row(align=True)
row.itemR(tools, "enable_auto_key", text="", toggle=True, icon='ICON_REC')
sub = row.row()
sub.active = tools.enable_auto_key
sub.itemR(tools, "autokey_mode", text="")
if screen.animation_playing and tools.enable_auto_key:
subsub = row.row()
subsub.itemR(tools, "record_with_nla", toggle=True)
layout.itemS()
row = layout.row(align=True)
row.itemR(scene, "active_keying_set", text="")
row.itemO("anim.insert_keyframe", text="", icon="ICON_KEY_HLT")
row.itemO("anim.delete_keyframe", text="", icon="ICON_KEY_DEHLT")
class TIME_MT_view(bpy.types.Menu):
__space_type__ = "TIMELINE"
__label__ = "View"
def draw(self, context):
layout = self.layout
st = context.space_data
layout.itemO("anim.time_toggle")
layout.itemS()
layout.itemR(st, "only_selected")
class TIME_MT_frame(bpy.types.Menu):
__space_type__ = "TIMELINE"
__label__ = "Frame"
def draw(self, context):
layout = self.layout
layout.itemO("marker.add", text="Add Marker")
layout.itemO("marker.duplicate", text="Duplicate Marker")
layout.itemO("marker.move", text="Grab/Move Marker")
layout.itemO("marker.delete", text="Delete Marker")
layout.itemL(text="ToDo: Name Marker")
layout.itemS()
layout.itemO("time.start_frame_set")
layout.itemO("time.end_frame_set")
class TIME_MT_playback(bpy.types.Menu):
__space_type__ = "TIMELINE"
__label__ = "Playback"
def draw(self, context):
layout = self.layout
st = context.space_data
layout.itemR(st, "play_top_left")
layout.itemR(st, "play_all_3d")
layout.itemR(st, "play_anim")
layout.itemR(st, "play_buttons")
layout.itemR(st, "play_image")
layout.itemR(st, "play_sequencer")
layout.itemS()
layout.itemR(st, "continue_physics")
bpy.types.register(TIME_HT_header)
bpy.types.register(TIME_MT_view)
bpy.types.register(TIME_MT_frame)
bpy.types.register(TIME_MT_playback)

View File

@@ -1,45 +1,43 @@
import bpy
# ********** Header ****************
# ********** Header **********
class VIEW3D_HT_header(bpy.types.Header):
__space_type__ = "VIEW_3D"
def draw(self, context):
layout = self.layout
view = context.space_data
mode_string = context.mode
edit_object = context.edit_object
layout.template_header()
# menus
# Menus
if context.area.show_menus:
row = layout.row()
row.itemM("VIEW3D_MT_view")
# Select Menu
if mode_string not in ('EDIT_TEXT', 'SCULPT', 'PAINT_WEIGHT', 'PAINT_VERTEX', 'PAINT_TEXTURE', 'PARTICLE'):
# XXX: Particle Mode has Select Menu.
row.itemM("VIEW3D_MT_select_%s" % mode_string)
if mode_string == 'OBJECT':
row.itemM("VIEW3D_MT_object")
elif mode_string == 'SCULPT':
row.itemM("VIEW3D_MT_sculpt")
elif edit_object:
row.itemM("VIEW3D_MT_edit_%s" % edit_object.type)
layout.template_header_3D()
# ********** Menu ****************
# ********** Menu **********
class VIEW3D_MT_view_navigation(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Navigation"
def draw(self, context):
layout = self.layout
# layout.itemO("view3d.view_fly_mode")
# layout.itemS()
layout.items_enumO("view3d.view_orbit", "type")
layout.itemS()
layout.items_enumO("view3d.view_pan", "type")
layout.itemS()
layout.item_floatO("view3d.zoom", "delta", 1.0, text="Zoom In")
layout.item_floatO("view3d.zoom", "delta", -1.0, text="Zoom Out")
# ********** View menus **********
class VIEW3D_MT_view(bpy.types.Menu):
__space_type__ = "VIEW_3D"
@@ -94,8 +92,848 @@ class VIEW3D_MT_view(bpy.types.Menu):
layout.itemO("screen.region_foursplit", text="Toggle Quad View")
layout.itemO("screen.screen_full_area", text="Toggle Full Screen")
class VIEW3D_MT_view_navigation(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Navigation"
# ********** Panel ****************
def draw(self, context):
layout = self.layout
# layout.itemO("view3d.view_fly_mode")
# layout.itemS()
layout.items_enumO("view3d.view_orbit", "type")
layout.itemS()
layout.items_enumO("view3d.view_pan", "type")
layout.itemS()
layout.item_floatO("view3d.zoom", "delta", 1.0, text="Zoom In")
layout.item_floatO("view3d.zoom", "delta", -1.0, text="Zoom Out")
# ********** Select menus, suffix from context.mode **********
class VIEW3D_MT_select_OBJECT(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemS()
layout.itemO("object.select_all_toggle", text="Select/Deselect All")
layout.itemO("object.select_inverse", text="Inverse")
layout.itemO("object.select_random", text="Random")
layout.itemO("object.select_by_layer", text="Select All by Layer")
layout.item_enumO("object.select_by_type", "type", "", text="Select All by Type")
layout.itemO("object.select_grouped", text="Select Grouped")
class VIEW3D_MT_select_POSE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemS()
layout.itemO("pose.select_all_toggle", text="Select/Deselect All")
layout.itemO("pose.select_inverse", text="Inverse")
layout.itemO("pose.select_constraint_target", text="Constraint Target")
layout.itemS()
layout.item_enumO("pose.select_hierarchy", "direction", 'PARENT')
layout.item_enumO("pose.select_hierarchy", "direction", 'CHILD')
layout.itemS()
layout.view3d_select_posemenu()
class VIEW3D_MT_select_PARTICLE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemS()
layout.itemO("particle.select_all_toggle", text="Select/Deselect All")
layout.itemO("particle.select_linked")
layout.itemS()
#layout.itemO("particle.select_last")
#layout.itemO("particle.select_first")
layout.itemO("particle.select_more")
layout.itemO("particle.select_less")
class VIEW3D_MT_select_EDIT_MESH(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemS()
layout.itemO("mesh.select_all_toggle", text="Select/Deselect All")
layout.itemO("mesh.select_inverse", text="Inverse")
layout.itemS()
layout.itemO("mesh.select_random", text="Random...")
layout.itemO("mesh.edges_select_sharp", text="Sharp Edges")
layout.itemO("mesh.faces_select_linked_flat", text="Linked Flat Faces")
layout.itemS()
layout.item_enumO("mesh.select_by_number_vertices", "type", 'TRIANGLES', text="Triangles")
layout.item_enumO("mesh.select_by_number_vertices", "type", 'QUADS', text="Quads")
layout.item_enumO("mesh.select_by_number_vertices", "type", 'OTHER', text="Loose Verts/Edges")
layout.itemO("mesh.select_similar", text="Similar...")
layout.itemS()
layout.itemO("mesh.select_less", text="Less")
layout.itemO("mesh.select_more", text="More")
layout.itemS()
layout.itemO("mesh.select_linked", text="Linked")
layout.itemO("mesh.select_vertex_path", text="Vertex Path")
layout.itemO("mesh.loop_multi_select", text="Edge Loop")
layout.item_booleanO("mesh.loop_multi_select", "ring", True, text="Edge Ring")
layout.itemS()
layout.itemO("mesh.loop_to_region")
layout.itemO("mesh.region_to_loop")
class VIEW3D_MT_select_EDIT_CURVE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemO("view3d.select_circle")
layout.itemS()
layout.itemO("curve.select_all_toggle", text="Select/Deselect All")
layout.itemO("curve.select_inverse")
layout.itemO("curve.select_random")
layout.itemO("curve.select_every_nth")
layout.itemS()
layout.itemO("curve.de_select_first")
layout.itemO("curve.de_select_last")
layout.itemO("curve.select_next")
layout.itemO("curve.select_previous")
layout.itemS()
layout.itemO("curve.select_more")
layout.itemO("curve.select_less")
class VIEW3D_MT_select_EDIT_SURFACE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemO("view3d.select_circle")
layout.itemS()
layout.itemO("curve.select_all_toggle", text="Select/Deselect All")
layout.itemO("curve.select_inverse")
layout.itemO("curve.select_random")
layout.itemO("curve.select_every_nth")
layout.itemS()
layout.itemO("curve.select_row")
layout.itemS()
layout.itemO("curve.select_more")
layout.itemO("curve.select_less")
class VIEW3D_MT_select_EDIT_METABALL(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemS()
layout.itemL(text="Select/Deselect All")
layout.itemL(text="Inverse")
layout.itemS()
layout.itemL(text="Random")
class VIEW3D_MT_select_EDIT_LATTICE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemS()
layout.itemO("lattice.select_all_toggle", text="Select/Deselect All")
class VIEW3D_MT_select_EDIT_ARMATURE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.select_border")
layout.itemS()
layout.itemO("armature.select_all_toggle", text="Select/Deselect All")
layout.itemO("armature.select_inverse", text="Inverse")
layout.itemS()
layout.item_enumO("armature.select_hierarchy", "direction", 'PARENT')
layout.item_enumO("armature.select_hierarchy", "direction", 'CHILD')
layout.itemS()
layout.view3d_select_armaturemenu()
class VIEW3D_MT_select_FACE(bpy.types.Menu):# XXX no matching enum
__space_type__ = "VIEW_3D"
__label__ = "Select"
def draw(self, context):
layout = self.layout
layout.view3d_select_faceselmenu()
# ********** Object menu **********
class VIEW3D_MT_object(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__context__ = "objectmode"
__label__ = "Object"
def draw(self, context):
layout = self.layout
layout.itemM("VIEW3D_MT_object_clear")
layout.itemM("VIEW3D_MT_object_snap")
layout.itemS()
layout.itemO("anim.insert_keyframe_menu")
layout.itemO("anim.delete_keyframe_v3d")
layout.itemS()
layout.itemO("object.duplicate")
layout.item_booleanO("object.duplicate", "linked", True, text="Duplicate Linked")
layout.itemO("object.delete")
layout.itemO("object.proxy_make")
layout.itemS()
layout.itemM("VIEW3D_MT_object_parent")
layout.itemM("VIEW3D_MT_object_track")
layout.itemM("VIEW3D_MT_object_group")
layout.itemM("VIEW3D_MT_object_constraints")
layout.itemS()
layout.itemO("object.join")
layout.itemS()
layout.itemM("VIEW3D_MT_object_show")
class VIEW3D_MT_object_clear(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Clear"
def draw(self, context):
layout = self.layout
layout.itemO("object.location_clear")
layout.itemO("object.rotation_clear")
layout.itemO("object.scale_clear")
layout.itemO("object.origin_clear")
class VIEW3D_MT_object_snap(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Snap"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.snap_selected_to_grid")
layout.itemO("view3d.snap_selected_to_cursor")
layout.itemO("view3d.snap_selected_to_center")
layout.itemS()
layout.itemO("view3d.snap_cursor_to_selected")
layout.itemO("view3d.snap_cursor_to_grid")
layout.itemO("view3d.snap_cursor_to_active")
class VIEW3D_MT_object_parent(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Parent"
def draw(self, context):
layout = self.layout
layout.itemO("object.parent_set")
layout.itemO("object.parent_clear")
class VIEW3D_MT_object_track(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Track"
def draw(self, context):
layout = self.layout
layout.itemO("object.track_set")
layout.itemO("object.track_clear")
class VIEW3D_MT_object_group(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Group"
def draw(self, context):
layout = self.layout
layout.itemO("group.group_create")
layout.itemO("group.objects_remove")
layout.itemS()
layout.itemO("group.objects_add_active")
layout.itemO("group.objects_remove_active")
class VIEW3D_MT_object_constraints(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Constraints"
def draw(self, context):
layout = self.layout
layout.itemO("object.constraint_add_with_targets")
layout.itemO("object.constraints_clear")
class VIEW3D_MT_object_show(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Show/Hide"
def draw(self, context):
layout = self.layout
layout.itemO("object.restrictview_clear")
layout.itemO("object.restrictview_set")
layout.item_booleanO("object.restrictview_set", "unselected", True, text="Hide Unselected")
# ********** Sculpt menu **********
class VIEW3D_MT_sculpt(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Sculpt"
def draw(self, context):
layout = self.layout
sculpt = context.tool_settings.sculpt
brush = context.tool_settings.sculpt.brush
layout.itemR(sculpt, "symmetry_x")
layout.itemR(sculpt, "symmetry_y")
layout.itemR(sculpt, "symmetry_z")
layout.itemS()
layout.itemR(sculpt, "lock_x")
layout.itemR(sculpt, "lock_y")
layout.itemR(sculpt, "lock_z")
layout.itemS()
layout.item_menu_enumO("brush.curve_preset", property="shape")
layout.itemS()
if brush.sculpt_tool != 'GRAB':
layout.itemR(brush, "airbrush")
if brush.sculpt_tool != 'LAYER':
layout.itemR(brush, "anchored")
if brush.sculpt_tool in ('DRAW', 'PINCH', 'INFLATE', 'LAYER', 'CLAY'):
layout.itemR(brush, "flip_direction")
if brush.sculpt_tool == 'LAYER':
layout.itemR(brush, "persistent")
layout.itemO("sculpt.set_persistent_base")
# ********** Edit Menus, suffix from ob.type **********
class VIEW3D_MT_edit_snap(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Snap"
def draw(self, context):
layout = self.layout
layout.itemO("view3d.snap_selected_to_grid")
layout.itemO("view3d.snap_selected_to_cursor")
layout.itemO("view3d.snap_selected_to_center")
layout.itemS()
layout.itemO("view3d.snap_cursor_to_selected")
layout.itemO("view3d.snap_cursor_to_grid")
layout.itemO("view3d.snap_cursor_to_active")
# Edit MESH
class VIEW3D_MT_edit_MESH(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Mesh"
def draw(self, context):
layout = self.layout
settings = context.tool_settings
layout.itemO("ed.undo")
layout.itemO("ed.redo")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_snap")
layout.itemS()
layout.itemO("uv.mapping_menu")
layout.itemS()
layout.itemO("mesh.extrude")
layout.itemO("mesh.duplicate")
layout.itemO("mesh.delete")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_MESH_vertices")
layout.itemM("VIEW3D_MT_edit_MESH_edges")
layout.itemM("VIEW3D_MT_edit_MESH_faces")
layout.itemM("VIEW3D_MT_edit_MESH_normals")
layout.itemS()
layout.itemR(settings, "automerge_editing")
layout.itemR(settings, "proportional_editing")
layout.item_menu_enumR(settings, "proportional_editing_falloff")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_MESH_showhide")
class VIEW3D_MT_edit_MESH_vertices(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Vertices"
def draw(self, context):
layout = self.layout
layout.itemO("mesh.merge")
layout.itemO("mesh.rip")
layout.itemO("mesh.split")
layout.itemO("mesh.separate")
layout.itemS()
layout.itemO("mesh.vertices_smooth")
layout.itemO("mesh.remove_doubles")
class VIEW3D_MT_edit_MESH_edges(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Edges"
def draw(self, context):
layout = self.layout
layout.itemO("mesh.edge_face_add")
layout.itemO("mesh.subdivide")
layout.item_floatO("mesh.subdivide", "smoothness", 1.0, text="Subdivide Smooth")
layout.itemS()
layout.itemO("mesh.mark_seam")
layout.item_booleanO("mesh.mark_seam", "clear", True, text="Clear Seam")
layout.itemS()
layout.itemO("mesh.mark_sharp")
layout.item_booleanO("mesh.mark_sharp", "clear", True, text="Clear Sharp")
layout.itemS()
layout.item_enumO("mesh.edge_rotate", "direction", 'CW', text="Rotate Edge CW")
layout.item_enumO("mesh.edge_rotate", "direction", 'CCW', text="Rotate Edge CCW")
class VIEW3D_MT_edit_MESH_faces(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Faces"
def draw(self, context):
layout = self.layout
layout.itemO("mesh.edge_face_add")
layout.itemO("mesh.fill")
layout.itemO("mesh.beauty_fill")
layout.itemS()
layout.itemO("mesh.quads_convert_to_tris")
layout.itemO("mesh.tris_convert_to_quads")
layout.itemO("mesh.edge_flip")
layout.itemS()
layout.itemO("mesh.faces_shade_smooth")
layout.itemO("mesh.faces_shade_flat")
class VIEW3D_MT_edit_MESH_normals(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Normals"
def draw(self, context):
layout = self.layout
layout.itemO("mesh.normals_make_consistent", text="Recalculate Outside")
layout.item_booleanO("mesh.normals_make_consistent", "inside", True, text="Recalculate Inside")
layout.itemS()
layout.itemO("mesh.flip_normals")
class VIEW3D_MT_edit_MESH_showhide(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Show/Hide"
def draw(self, context):
layout = self.layout
layout.itemO("mesh.reveal")
layout.itemO("mesh.hide")
layout.item_booleanO("mesh.hide", "unselected", True, text="Hide Unselected")
# Edit CURVE
# draw_CURVE is used by VIEW3D_MT_edit_CURVE and VIEW3D_MT_edit_SURFACE
def draw_CURVE(self, context):
layout = self.layout
settings = context.tool_settings
layout.itemM("VIEW3D_MT_edit_snap")
layout.itemS()
layout.itemO("curve.extrude")
layout.itemO("curve.duplicate")
layout.itemO("curve.separate")
layout.itemO("curve.make_segment")
layout.itemO("curve.cyclic_toggle")
layout.itemO("curve.delete")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_CURVE_ctrlpoints")
layout.itemM("VIEW3D_MT_edit_CURVE_segments")
layout.itemS()
layout.itemR(settings, "proportional_editing")
layout.item_menu_enumR(settings, "proportional_editing_falloff")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_CURVE_showhide")
class VIEW3D_MT_edit_CURVE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Curve"
draw = draw_CURVE
class VIEW3D_MT_edit_CURVE_ctrlpoints(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Control Points"
def draw(self, context):
layout = self.layout
edit_object = context.edit_object
if edit_object.type == 'CURVE':
layout.item_enumO("tfm.transform", "mode", 'TILT')
layout.itemO("curve.tilt_clear")
layout.itemO("curve.separate")
layout.itemS()
layout.item_menu_enumO("curve.handle_type_set", "type")
class VIEW3D_MT_edit_CURVE_segments(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Segments"
def draw(self, context):
layout = self.layout
layout.itemO("curve.subdivide")
layout.itemO("curve.switch_direction")
class VIEW3D_MT_edit_CURVE_showhide(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Show/Hide"
def draw(self, context):
layout = self.layout
layout.itemO("curve.reveal")
layout.itemO("curve.hide")
layout.item_booleanO("curve.hide", "unselected", True, text="Hide Unselected")
# Edit SURFACE
class VIEW3D_MT_edit_SURFACE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Surface"
draw = draw_CURVE
# Edit TEXT
class VIEW3D_MT_edit_TEXT(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Text"
def draw(self, context):
layout = self.layout
layout.itemO("font.file_paste")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_TEXT_chars")
class VIEW3D_MT_edit_TEXT_chars(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Special Characters"
def draw(self, context):
layout = self.layout
layout.item_stringO("font.text_insert", "text", b'\xC2\xA9'.decode(), text="Copyright|Alt C")
layout.item_stringO("font.text_insert", "text", b'\xC2\xAE'.decode(), text="Registered Trademark|Alt R")
layout.itemS()
layout.item_stringO("font.text_insert", "text", b'\xC2\xB0'.decode(), text="Degree Sign|Alt G")
layout.item_stringO("font.text_insert", "text", b'\xC3\x97'.decode(), text="Multiplication Sign|Alt x")
layout.item_stringO("font.text_insert", "text", b'\xC2\x8A'.decode(), text="Circle|Alt .")
layout.item_stringO("font.text_insert", "text", b'\xC2\xB9'.decode(), text="Superscript 1|Alt 1")
layout.item_stringO("font.text_insert", "text", b'\xC2\xB2'.decode(), text="Superscript 2|Alt 2")
layout.item_stringO("font.text_insert", "text", b'\xC2\xB3'.decode(), text="Superscript 3|Alt 3")
layout.item_stringO("font.text_insert", "text", b'\xC2\xBB'.decode(), text="Double >>|Alt >")
layout.item_stringO("font.text_insert", "text", b'\xC2\xAB'.decode(), text="Double <<|Alt <")
layout.item_stringO("font.text_insert", "text", b'\xE2\x80\xB0'.decode(), text="Promillage|Alt %")
layout.itemS()
layout.item_stringO("font.text_insert", "text", b'\xC2\xA4'.decode(), text="Dutch Florin|Alt F")
layout.item_stringO("font.text_insert", "text", b'\xC2\xA3'.decode(), text="British Pound|Alt L")
layout.item_stringO("font.text_insert", "text", b'\xC2\xA5'.decode(), text="Japanese Yen|Alt Y")
layout.itemS()
layout.item_stringO("font.text_insert", "text", b'\xC3\x9F'.decode(), text="German S|Alt S")
layout.item_stringO("font.text_insert", "text", b'\xC2\xBF'.decode(), text="Spanish Question Mark|Alt ?")
layout.item_stringO("font.text_insert", "text", b'\xC2\xA1'.decode(), text="Spanish Exclamation Mark|Alt !")
# Edit META
class VIEW3D_MT_edit_META(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Metaball"
def draw(self, context):
layout = self.layout
settings = context.tool_settings
layout.itemO("ed.undo")
layout.itemO("ed.redo")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_snap")
layout.itemS()
layout.itemO("mball.delete_metaelems")
layout.itemO("mball.duplicate_metaelems")
layout.itemS()
layout.itemR(settings, "proportional_editing")
layout.item_menu_enumR(settings, "proportional_editing_falloff")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_META_showhide")
class VIEW3D_MT_edit_META_showhide(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Show/Hide"
def draw(self, context):
layout = self.layout
layout.itemO("mball.reveal_metaelems")
layout.itemO("mball.hide_metaelems")
layout.item_booleanO("mball.hide_metaelems", "unselected", True, text="Hide Unselected")
# Edit LATTICE
class VIEW3D_MT_edit_LATTICE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Lattice"
def draw(self, context):
layout = self.layout
settings = context.tool_settings
layout.itemM("VIEW3D_MT_edit_snap")
layout.itemS()
layout.itemO("lattice.make_regular")
layout.itemS()
layout.itemR(settings, "proportional_editing")
layout.item_menu_enumR(settings, "proportional_editing_falloff")
# Edit ARMATURE
class VIEW3D_MT_edit_ARMATURE(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Armature"
def draw(self, context):
layout = self.layout
edit_object = context.edit_object
arm = edit_object.data
layout.itemM("VIEW3D_MT_edit_snap")
layout.itemM("VIEW3D_MT_edit_ARMATURE_roll")
if arm.drawtype == 'ENVELOPE':
layout.item_enumO("tfm.transform", "mode", 'BONESIZE', text="Scale Envelope Distance")
else:
layout.item_enumO("tfm.transform", "mode", 'BONESIZE', text="Scale B-Bone Width")
layout.itemS()
layout.itemO("armature.extrude")
if arm.x_axis_mirror:
layout.item_booleanO("armature.extrude", "forked", True, text="Extrude Forked")
layout.itemO("armature.duplicate")
layout.itemO("armature.merge")
layout.itemO("armature.fill")
layout.itemO("armature.delete")
layout.itemO("armature.separate")
layout.itemS()
layout.itemO("armature.subdivide_simple")
layout.itemO("armature.subdivide_multi")
layout.itemS()
layout.item_enumO("armature.autoside_names", "axis", 'XAXIS', text="AutoName Left/Right")
layout.item_enumO("armature.autoside_names", "axis", 'YAXIS', text="AutoName Front/Back")
layout.item_enumO("armature.autoside_names", "axis", 'ZAXIS', text="AutoName Top/Bottom")
layout.itemO("armature.flip_names")
layout.itemS()
layout.itemO("armature.armature_layers")
layout.itemO("armature.bone_layers")
layout.itemS()
layout.itemM("VIEW3D_MT_edit_ARMATURE_parent")
layout.itemS()
layout.item_menu_enumO("armature.flags_set", "mode", text="Bone Settings")
class VIEW3D_MT_edit_ARMATURE_parent(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Parent"
def draw(self, context):
layout = self.layout
layout.itemO("armature.parent_set")
layout.itemO("armature.parent_clear")
class VIEW3D_MT_edit_ARMATURE_roll(bpy.types.Menu):
__space_type__ = "VIEW_3D"
__label__ = "Bone Roll"
def draw(self, context):
layout = self.layout
layout.item_enumO("armature.calculate_roll", "type", 'GLOBALUP', text="Clear Roll (Z-Axis Up)")
layout.item_enumO("armature.calculate_roll", "type", 'CURSOR', text="Roll to Cursor")
layout.itemS()
layout.item_enumO("tfm.transform", "mode", 'BONE_ROLL', text="Set Roll")
# ********** Panel **********
class VIEW3D_PT_3dview_properties(bpy.types.Panel):
__space_type__ = "VIEW_3D"
@@ -198,9 +1036,61 @@ class VIEW3D_PT_background_image(bpy.types.Panel):
col.itemR(bg, "x_offset", text="X")
col.itemR(bg, "y_offset", text="Y")
bpy.types.register(VIEW3D_HT_header) # Header
bpy.types.register(VIEW3D_MT_view) #View Menus
bpy.types.register(VIEW3D_MT_view_navigation)
bpy.types.register(VIEW3D_MT_view)
bpy.types.register(VIEW3D_HT_header)
bpy.types.register(VIEW3D_PT_3dview_properties)
bpy.types.register(VIEW3D_MT_select_OBJECT) # Select Menus
bpy.types.register(VIEW3D_MT_select_POSE)
bpy.types.register(VIEW3D_MT_select_PARTICLE)
bpy.types.register(VIEW3D_MT_select_EDIT_MESH)
bpy.types.register(VIEW3D_MT_select_EDIT_CURVE)
bpy.types.register(VIEW3D_MT_select_EDIT_SURFACE)
bpy.types.register(VIEW3D_MT_select_EDIT_METABALL)
bpy.types.register(VIEW3D_MT_select_EDIT_LATTICE)
bpy.types.register(VIEW3D_MT_select_EDIT_ARMATURE)
bpy.types.register(VIEW3D_MT_select_FACE) # XXX todo
bpy.types.register(VIEW3D_MT_object) # Object Menu
bpy.types.register(VIEW3D_MT_object_clear)
bpy.types.register(VIEW3D_MT_object_snap)
bpy.types.register(VIEW3D_MT_object_parent)
bpy.types.register(VIEW3D_MT_object_track)
bpy.types.register(VIEW3D_MT_object_group)
bpy.types.register(VIEW3D_MT_object_constraints)
bpy.types.register(VIEW3D_MT_object_show)
bpy.types.register(VIEW3D_MT_sculpt) # Sculpt Menu
bpy.types.register(VIEW3D_MT_edit_snap) # Edit Menus
bpy.types.register(VIEW3D_MT_edit_MESH)
bpy.types.register(VIEW3D_MT_edit_MESH_vertices)
bpy.types.register(VIEW3D_MT_edit_MESH_edges)
bpy.types.register(VIEW3D_MT_edit_MESH_faces)
bpy.types.register(VIEW3D_MT_edit_MESH_normals)
bpy.types.register(VIEW3D_MT_edit_MESH_showhide)
bpy.types.register(VIEW3D_MT_edit_CURVE)
bpy.types.register(VIEW3D_MT_edit_CURVE_ctrlpoints)
bpy.types.register(VIEW3D_MT_edit_CURVE_segments)
bpy.types.register(VIEW3D_MT_edit_CURVE_showhide)
bpy.types.register(VIEW3D_MT_edit_SURFACE)
bpy.types.register(VIEW3D_MT_edit_TEXT)
bpy.types.register(VIEW3D_MT_edit_TEXT_chars)
bpy.types.register(VIEW3D_MT_edit_META)
bpy.types.register(VIEW3D_MT_edit_META_showhide)
bpy.types.register(VIEW3D_MT_edit_LATTICE)
bpy.types.register(VIEW3D_MT_edit_ARMATURE)
bpy.types.register(VIEW3D_MT_edit_ARMATURE_parent)
bpy.types.register(VIEW3D_MT_edit_ARMATURE_roll)
bpy.types.register(VIEW3D_PT_3dview_properties) # Panels
bpy.types.register(VIEW3D_PT_3dview_display)
bpy.types.register(VIEW3D_PT_background_image)

View File

@@ -1,14 +1,14 @@
import bpy
# ********** default tools for objectmode ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "objectmode"
# ********** default tools for objectmode ****************
class VIEW3D_PT_tools_objectmode(View3DPanel):
__context__ = "objectmode"
__label__ = "Object Tools"
def draw(self, context):
@@ -43,12 +43,8 @@ class VIEW3D_PT_tools_objectmode(View3DPanel):
# ********** default tools for editmode_mesh ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "editmode_mesh"
class VIEW3D_PT_tools_editmode_mesh(View3DPanel):
class VIEW3D_PT_tools_meshedit(View3DPanel):
__context__ = "mesh_edit"
__label__ = "Mesh Tools"
def draw(self, context):
@@ -90,12 +86,8 @@ class VIEW3D_PT_tools_editmode_mesh(View3DPanel):
# ********** default tools for editmode_curve ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "editmode_curve"
class VIEW3D_PT_tools_editmode_curve(View3DPanel):
class VIEW3D_PT_tools_curveedit(View3DPanel):
__context__ = "curve_edit"
__label__ = "Curve Tools"
def draw(self, context):
@@ -124,12 +116,8 @@ class VIEW3D_PT_tools_editmode_curve(View3DPanel):
# ********** default tools for editmode_surface ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "editmode_surface"
class VIEW3D_PT_tools_editmode_surface(View3DPanel):
class VIEW3D_PT_tools_surfaceedit(View3DPanel):
__context__ = "surface_edit"
__label__ = "Surface Tools"
def draw(self, context):
@@ -158,12 +146,8 @@ class VIEW3D_PT_tools_editmode_surface(View3DPanel):
# ********** default tools for editmode_text ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "editmode_text"
class VIEW3D_PT_tools_editmode_text(View3DPanel):
class VIEW3D_PT_tools_textedit(View3DPanel):
__context__ = "text_edit"
__label__ = "Text Tools"
def draw(self, context):
@@ -179,12 +163,8 @@ class VIEW3D_PT_tools_editmode_text(View3DPanel):
# ********** default tools for editmode_armature ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "editmode_armature"
class VIEW3D_PT_tools_editmode_armature(View3DPanel):
class VIEW3D_PT_tools_armatureedit(View3DPanel):
__context__ = "armature_edit"
__label__ = "Armature Tools"
def draw(self, context):
@@ -209,12 +189,8 @@ class VIEW3D_PT_tools_editmode_armature(View3DPanel):
# ********** default tools for editmode_mball ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "editmode_mball"
class VIEW3D_PT_tools_editmode_mball(View3DPanel):
class VIEW3D_PT_tools_mballedit(View3DPanel):
__context__ = "mball_edit"
__label__ = "Meta Tools"
def draw(self, context):
@@ -229,12 +205,8 @@ class VIEW3D_PT_tools_editmode_mball(View3DPanel):
# ********** default tools for editmode_lattice ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "editmode_lattice"
class VIEW3D_PT_tools_editmode_lattice(View3DPanel):
class VIEW3D_PT_tools_latticeedit(View3DPanel):
__context__ = "lattice_edit"
__label__ = "Lattice Tools"
def draw(self, context):
@@ -249,12 +221,8 @@ class VIEW3D_PT_tools_editmode_lattice(View3DPanel):
# ********** default tools for posemode ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "pose_mode"
class VIEW3D_PT_tools_posemode(View3DPanel):
__context__ = "posemode"
__label__ = "Pose Tools"
def draw(self, context):
@@ -324,10 +292,14 @@ class VIEW3D_PT_tools_brush(PaintPanel):
settings = self.paint_settings(context)
brush = settings.brush
if not context.particle_edit_object:
layout.split().row().template_ID(settings, "brush")
col = layout.split().column()
row = col.row()
row.template_list(settings, "brushes", settings, "active_brush_index", rows=2)
col.template_ID(settings, "brush", new="brush.add")
# Particle Mode #
# XXX This needs a check if psys is editable.
@@ -336,27 +308,28 @@ class VIEW3D_PT_tools_brush(PaintPanel):
layout.column().itemR(settings, "tool", expand=True)
if settings.tool != 'NONE':
col = layout.column(align=True)
col = layout.column()
col.itemR(brush, "size", slider=True)
col.itemR(brush, "strength", slider=True)
if settings.tool == 'ADD':
layout.itemR(settings, "add_interpolate")
col = layout.column()
col.itemR(brush, "steps", slider=True)
col.itemR(settings, "add_keys", slider=True)
col.itemR(settings, "add_interpolate")
sub = col.column(align=True)
sub.active = settings.add_interpolate
sub.itemR(brush, "steps", slider=True)
sub.itemR(settings, "add_keys", slider=True)
elif settings.tool == 'LENGTH':
layout.itemR(brush, "length_mode", expand=True)
elif settings.tool == 'PUFF':
layout.itemR(brush, "puff_mode", expand=True)
# Sculpt Mode #
elif context.sculpt_object:
layout.column().itemR(brush, "sculpt_tool", expand=True)
elif context.sculpt_object and settings.brush:
col = layout.column()
col.itemS()
row = col.row(align=True)
row.itemR(brush, "size", slider=True)
@@ -378,6 +351,8 @@ class VIEW3D_PT_tools_brush(PaintPanel):
if brush.sculpt_tool == 'LAYER':
col.itemR(brush, "persistent")
col.itemO("sculpt.set_persistent_base")
col.itemR(brush, "sculpt_tool")
# Texture Paint Mode #
@@ -460,6 +435,7 @@ class VIEW3D_PT_tools_brush_curve(PaintPanel):
layout = self.layout
layout.template_curve_mapping(brush.curve)
layout.item_menu_enumO("brush.curve_preset", property="shape")
class VIEW3D_PT_sculpt_options(PaintPanel):
__label__ = "Options"
@@ -491,12 +467,8 @@ class VIEW3D_PT_sculpt_options(PaintPanel):
# ********** default tools for weightpaint ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "weight_paint"
class VIEW3D_PT_weight_paint_options(View3DPanel):
class VIEW3D_PT_tools_weightpaint(View3DPanel):
__context__ = "weightpaint"
__label__ = "Options"
def draw(self, context):
@@ -522,12 +494,8 @@ class VIEW3D_PT_weight_paint_options(View3DPanel):
# ********** default tools for vertexpaint ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
class VIEW3D_PT_vertex_paint_options(View3DPanel):
__context__ = "vertex_paint"
class VIEW3D_PT_tools_vertexpaint(View3DPanel):
__context__ = "vertexpaint"
__label__ = "Options"
def draw(self, context):
@@ -550,12 +518,8 @@ class VIEW3D_PT_vertex_paint_options(View3DPanel):
# ********** default tools for texturepaint ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "texture_paint"
class VIEW3D_PT_tools_texture_paint(View3DPanel):
class VIEW3D_PT_tools_texturepaint(View3DPanel):
__context__ = "texturepaint"
__label__ = "Options"
def draw(self, context):
@@ -563,32 +527,49 @@ class VIEW3D_PT_tools_texture_paint(View3DPanel):
ipaint = context.tool_settings.image_paint
settings = context.tool_settings.image_paint
use_projection= ipaint.use_projection
col = layout.column()
col.itemR(ipaint, "use_projection")
sub = col.column()
sub.active = ipaint.use_projection
sub.active = use_projection
sub.itemR(ipaint, "use_occlude")
sub.itemR(ipaint, "use_backface_cull")
sub.itemR(ipaint, "use_normal_falloff")
sub.itemR(ipaint, "use_stencil_layer")
subsub = sub.column()
subsub.active = ipaint.use_stencil_layer
subsub.itemR(ipaint, "invert_stencil")
if settings.tool == 'CLONE':
sub.itemR(ipaint, "use_clone_layer")
split = layout.split()
col = split.column()
col.active = (use_projection)
col.itemR(ipaint, "use_normal_falloff")
col = split.column()
col.active = (ipaint.use_normal_falloff and use_projection)
col.itemR(ipaint, "normal_angle", text="")
split = layout.split(percentage=0.7)
col = split.column(align=False)
col.active = (use_projection)
col.itemR(ipaint, "use_stencil_layer")
col = split.column(align=False)
col.active = (use_projection and ipaint.use_stencil_layer)
col.itemR(ipaint, "invert_stencil", text="Inv")
col = layout.column()
sub = col.column()
sub.active = (settings.tool == 'CLONE')
sub.itemR(ipaint, "use_clone_layer")
sub = col.column()
sub.itemR(ipaint, "seam_bleed")
sub.itemR(ipaint, "normal_angle")
# ********** default tools for particle mode ****************
class View3DPanel(bpy.types.Panel):
__space_type__ = "VIEW_3D"
__region_type__ = "TOOLS"
__context__ = "particle_mode"
class VIEW3D_PT_tools_particle_edit(View3DPanel):
class VIEW3D_PT_tools_particlemode(View3DPanel):
__context__ = "particlemode"
__label__ = "Options"
def draw(self, context):
@@ -607,23 +588,23 @@ class VIEW3D_PT_tools_particle_edit(View3DPanel):
col.itemR(pe, "keep_root", text="Root")
col = layout.column(align=True)
col.itemL(text="Draw:")
col.itemL(text="Display:")
col.itemR(pe, "show_time", text="Time")
col.itemR(pe, "show_children", text="Children")
bpy.types.register(VIEW3D_PT_tools_objectmode)
bpy.types.register(VIEW3D_PT_tools_editmode_mesh)
bpy.types.register(VIEW3D_PT_tools_editmode_curve)
bpy.types.register(VIEW3D_PT_tools_editmode_surface)
bpy.types.register(VIEW3D_PT_tools_editmode_text)
bpy.types.register(VIEW3D_PT_tools_editmode_armature)
bpy.types.register(VIEW3D_PT_tools_editmode_mball)
bpy.types.register(VIEW3D_PT_tools_editmode_lattice)
bpy.types.register(VIEW3D_PT_tools_meshedit)
bpy.types.register(VIEW3D_PT_tools_curveedit)
bpy.types.register(VIEW3D_PT_tools_surfaceedit)
bpy.types.register(VIEW3D_PT_tools_textedit)
bpy.types.register(VIEW3D_PT_tools_armatureedit)
bpy.types.register(VIEW3D_PT_tools_mballedit)
bpy.types.register(VIEW3D_PT_tools_latticeedit)
bpy.types.register(VIEW3D_PT_tools_posemode)
bpy.types.register(VIEW3D_PT_tools_brush)
bpy.types.register(VIEW3D_PT_tools_brush_curve)
bpy.types.register(VIEW3D_PT_sculpt_options)
bpy.types.register(VIEW3D_PT_vertex_paint_options)
bpy.types.register(VIEW3D_PT_weight_paint_options)
bpy.types.register(VIEW3D_PT_tools_texture_paint)
bpy.types.register(VIEW3D_PT_tools_particle_edit)
bpy.types.register(VIEW3D_PT_tools_vertexpaint)
bpy.types.register(VIEW3D_PT_tools_weightpaint)
bpy.types.register(VIEW3D_PT_tools_texturepaint)
bpy.types.register(VIEW3D_PT_tools_particlemode)

View File

@@ -75,6 +75,7 @@ endif
# PLUGAPPLIB libs that form the application to be plugged in
# Note: the order is important here
GRPLIB = $(OCGDIR)/creator/$(DEBUG_DIR)libcreator.a
GRPLIB += $(OCGDIR)/blender/windowmanager/$(DEBUG_DIR)libwindowmanager.a
GRPLIB += $(NAN_BSP)/lib/$(DEBUG_DIR)libbsp.a
@@ -108,6 +109,7 @@ COMLIB += $(OCGDIR)/blender/blenfont/$(DEBUG_DIR)libblenfont.a
COMLIB += $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaudaspace.a
COMLIB += $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_src.a
COMLIB += $(NAN_AUDASPACE)/lib/$(DEBUG_DIR)libaud_fx.a
COMLIB += $(NAN_SAMPLERATE)/lib/$(DEBUG_DIR)libsamplerate.a
ifneq ($(NAN_NO_KETSJI),true)
COMLIB += $(OCGDIR)/gameengine/bloutines/$(DEBUG_DIR)libbloutines.a

View File

@@ -27,11 +27,13 @@ FILE(GLOB SRC intern/*.c)
SET(INC
../../../intern/guardedalloc ../blenlib ../makesdna ../editors/include
../blenkernel ../../../extern/glew/include .
${FTGL_INC}
${FREETYPE_INC}
${GETTEXT_INC}
${FREETYPE_INCLUDE_DIRS}
)
IF(WITH_INTERNATIONAL)
SET(INC ${INC} ${GETTEXT_INC})
ENDIF(WITH_INTERNATIONAL)
IF(WIN32)
ADD_DEFINITIONS(-D_WIN32 -DUSE_GETTEXT_DLL)
ENDIF(WIN32)

View File

@@ -153,7 +153,8 @@ char *blf_dir_search(char *file)
int blf_dir_split(const char *str, char *file, int *size)
{
char *s, i, len;
int i, len;
char *s;
/* Window, Linux or Mac, this is always / */
s= strrchr(str, '/');

View File

@@ -66,6 +66,9 @@ void BKE_keyingset_add_destination(struct KeyingSet *ks, struct ID *id, const ch
struct KS_Path *BKE_keyingset_find_destination(struct KeyingSet *ks, struct ID *id, const char group_name[], const char rna_path[], int array_index, int group_mode);
/* Copy all KeyingSets in the given list */
void BKE_keyingsets_copy(struct ListBase *newlist, struct ListBase *list);
/* Free data for KeyingSet but not set itself */
void BKE_keyingset_free(struct KeyingSet *ks);

View File

@@ -43,7 +43,7 @@ struct bContext;
struct ReportList;
#define BLENDER_VERSION 250
#define BLENDER_SUBVERSION 0
#define BLENDER_SUBVERSION 1
#define BLENDER_MINVERSION 250
#define BLENDER_MINSUBVERSION 0

View File

@@ -38,16 +38,15 @@ struct Scene;
struct wmOperator;
/* datablock functions */
struct Brush *add_brush(char *name);
struct Brush *add_brush(const char *name);
struct Brush *copy_brush(struct Brush *brush);
void make_local_brush(struct Brush *brush);
void free_brush(struct Brush *brush);
/* brush library operations used by different paint panels */
struct Brush **current_brush_source(struct Scene *sce);
int brush_set_nr(struct Brush **current_brush, int nr);
int brush_set_nr(struct Brush **current_brush, int nr, const char *name);
int brush_delete(struct Brush **current_brush);
void brush_check_exists(struct Brush **brush);
void brush_check_exists(struct Brush **brush, const char *name);
void brush_toggled_fake_user(struct Brush *brush);
int brush_texture_set_nr(struct Brush *brush, int nr);
int brush_texture_delete(struct Brush *brush);

View File

@@ -244,10 +244,6 @@ void cloth_update_normals ( ClothVertex *verts, int nVerts, MFace *face, int tot
void bvhtree_update_from_cloth ( ClothModifierData *clmd, int moving );
void bvhselftree_update_from_cloth ( ClothModifierData *clmd, int moving );
// needed for editmesh.c
void cloth_write_cache( Object *ob, ClothModifierData *clmd, int framenr );
int cloth_read_cache( Scene *scene, Object *ob, ClothModifierData *clmd, float framenr, int *old_framenr );
// needed for button_object.c
void cloth_clear_cache ( Object *ob, ClothModifierData *clmd, float framenr );

View File

@@ -86,6 +86,25 @@ typedef struct bContextStore {
int used;
} bContextStore;
/* for the conrtext's rna mode enum
* keep aligned with data_mode_strings in context.c */
enum {
CTX_MODE_EDIT_MESH = 0,
CTX_MODE_EDIT_CURVE,
CTX_MODE_EDIT_SURFACE,
CTX_MODE_EDIT_TEXT,
CTX_MODE_EDIT_ARMATURE,
CTX_MODE_EDIT_METABALL,
CTX_MODE_EDIT_LATTICE,
CTX_MODE_POSE,
CTX_MODE_SCULPT,
CTX_MODE_PAINT_WEIGHT,
CTX_MODE_PAINT_VERTEX,
CTX_MODE_PAINT_TEXTURE,
CTX_MODE_PARTICLE,
CTX_MODE_OBJECT
};
/* Context */
bContext *CTX_create(void);
@@ -191,6 +210,9 @@ struct Main *CTX_data_main(const bContext *C);
struct Scene *CTX_data_scene(const bContext *C);
struct ToolSettings *CTX_data_tool_settings(const bContext *C);
char *CTX_data_mode_string(const bContext *C);
int CTX_data_mode_enum(const bContext *C);
void CTX_data_main_set(bContext *C, struct Main *bmain);
void CTX_data_scene_set(bContext *C, struct Scene *bmain);

View File

@@ -112,27 +112,15 @@ typedef struct Global {
#define G_FACESELECT (1 << 8)
#define G_VERTEXPAINT (1 << 10)
#define G_DEBUG (1 << 12)
#define G_DOSCRIPTLINKS (1 << 13)
#define G_WEIGHTPAINT (1 << 15)
#define G_TEXTUREPAINT (1 << 16)
/* #define G_NOFROZEN (1 << 17) also removed */
#define G_GREASEPENCIL (1 << 17)
#define G_SCULPTMODE (1 << 29)
#define G_PARTICLEEDIT (1 << 30)
/* #define G_AUTOMATKEYS (1 << 30) also removed */
#define G_HIDDENHANDLES (1 << 31) /* used for curves only */
/* macro for testing face select mode
* Texture paint could be removed since selected faces are not used
* however hiding faces is useful */
#define FACESEL_PAINT_TEST ((G.f&G_FACESELECT) && (G.f & (G_VERTEXPAINT|G_WEIGHTPAINT|G_TEXTUREPAINT)))
/* G.fileflags */
#define G_AUTOPACK (1 << 0)

View File

@@ -47,6 +47,7 @@ struct rctf;
struct ListBase;
struct RenderData;
struct Scene;
struct Main;
struct Tex;
struct GPUMaterial;
struct GPUNode;
@@ -432,4 +433,8 @@ char* ntreeTexOutputMenu(struct bNodeTree *ntree);
void init_nodesystem(void);
void free_nodesystem(void);
/**/
void clear_scene_in_nodes(struct Main *bmain, struct Scene *sce);
#endif

View File

@@ -0,0 +1,51 @@
/*
* ***** 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) 2009 by Nicholas Bishop
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_PAINT_H
#define BKE_PAINT_H
struct Brush;
struct Object;
struct Paint;
struct Scene;
void paint_init(struct Paint *p, const char *brush_name);
void free_paint(struct Paint *p);
void copy_paint(struct Paint *orig, struct Paint *new);
struct Paint *paint_get_active(struct Scene *sce);
struct Brush *paint_brush(struct Paint *paint);
void paint_brush_set(struct Paint *paint, struct Brush *br);
void paint_brush_slot_add(struct Paint *p);
void paint_brush_slot_remove(struct Paint *p);
/* testing face select mode
* Texture paint could be removed since selected faces are not used
* however hiding faces is useful */
int paint_facesel_test(struct Object *ob);
#endif

View File

@@ -30,6 +30,8 @@
#define BKE_POINTCACHE_H
#include "DNA_ID.h"
#include "DNA_object_force.h"
#include "DNA_boid_types.h"
#include "MEM_guardedalloc.h"
@@ -55,9 +57,11 @@
#define PTCACHE_FILE_WRITE 1
/* PTCacheID types */
#define PTCACHE_TYPE_SOFTBODY 0
#define PTCACHE_TYPE_PARTICLES 1
#define PTCACHE_TYPE_CLOTH 2
#define PTCACHE_TYPE_SOFTBODY 0
#define PTCACHE_TYPE_PARTICLES 1
#define PTCACHE_TYPE_CLOTH 2
#define PTCACHE_TYPE_SMOKE_DOMAIN_LOW 3
#define PTCACHE_TYPE_SMOKE_DOMAIN_HIGH 4
/* PTCache read return code */
#define PTCACHE_READ_EXACT 1
@@ -69,47 +73,71 @@ struct Object;
struct Scene;
struct SoftBody;
struct ParticleSystem;
struct ParticleKey;
struct ClothModifierData;
struct SmokeModifierData;
struct PointCache;
struct ListBase;
/* temp structure for read/write */
typedef struct PTCacheData {
int index;
float loc[3];
float vel[3];
float rot[4];
float ave[3];
float size;
float times[3];
struct BoidData boids;
} PTCacheData;
typedef struct PTCacheFile {
FILE *fp;
int totpoint, type;
unsigned int data_types;
struct PTCacheData data;
void *cur[BPHYS_TOT_DATA];
} PTCacheFile;
typedef struct PTCacheID {
struct PTCacheID *next, *prev;
struct Scene *scene;
struct Object *ob;
void *data;
void *calldata;
int type;
int stack_index;
/* flags defined in DNA_object_force.h */
unsigned int data_types, info_types;
/* copies point data to cache data */
int (*write_elem)(int index, void *calldata, void **data);
/* copies point data to cache data */
int (*write_stream)(PTCacheFile *pf, void *calldata);
/* copies cache cata to point data */
void (*read_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float *old_data);
/* copies cache cata to point data */
void (*read_stream)(PTCacheFile *pf, void *calldata);
/* interpolated between previously read point data and cache data */
void (*interpolate_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float cfra1, float cfra2, float *old_data);
/* total number of simulated points */
int (*totpoint)(void *calldata);
/* number of points written for current cache frame (currently not used) */
int (*totwrite)(void *calldata);
int (*write_header)(PTCacheFile *pf);
int (*read_header)(PTCacheFile *pf);
struct PointCache *cache;
/* used for setting the current cache from ptcaches list */
struct PointCache **cache_ptr;
struct ListBase *ptcaches;
} PTCacheID;
typedef struct PTCacheWriter {
struct PTCacheID *pid;
int cfra;
int totelem;
void (*set_elem)(int index, void *calldata, float *data);
void *calldata;
} PTCacheWriter;
typedef struct PTCacheReader {
struct Scene *scene;
struct PTCacheID *pid;
float cfra;
int totelem;
void (*set_elem)(int elem_index, void *calldata, float *data);
void (*interpolate_elem)(int index, void *calldata, float frs_sec, float cfra, float cfra1, float cfra2, float *data1, float *data2);
void *calldata;
int *old_frame;
} PTCacheReader;
typedef struct PTCacheBaker {
struct Scene *scene;
int bake;
@@ -123,49 +151,75 @@ typedef struct PTCacheBaker {
void *progresscontext;
} PTCacheBaker;
/* Creating ID's */
/* Particle functions */
void BKE_ptcache_make_particle_key(struct ParticleKey *key, int index, void **data, float time);
/**************** Creating ID's ****************************/
void BKE_ptcache_id_from_softbody(PTCacheID *pid, struct Object *ob, struct SoftBody *sb);
void BKE_ptcache_id_from_particles(PTCacheID *pid, struct Object *ob, struct ParticleSystem *psys);
void BKE_ptcache_id_from_cloth(PTCacheID *pid, struct Object *ob, struct ClothModifierData *clmd);
void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeModifierData *smd, int num);
void BKE_ptcache_ids_from_object(struct ListBase *lb, struct Object *ob);
/* Global funcs */
/***************** Global funcs ****************************/
void BKE_ptcache_remove(void);
/* ID specific functions */
/************ ID specific functions ************************/
void BKE_ptcache_id_clear(PTCacheID *id, int mode, int cfra);
int BKE_ptcache_id_exist(PTCacheID *id, int cfra);
int BKE_ptcache_id_reset(struct Scene *scene, PTCacheID *id, int mode);
void BKE_ptcache_id_time(PTCacheID *pid, struct Scene *scene, float cfra, int *startframe, int *endframe, float *timescale);
int BKE_ptcache_object_reset(struct Scene *scene, struct Object *ob, int mode);
/* File reading/writing */
PTCacheFile *BKE_ptcache_file_open(PTCacheID *id, int mode, int cfra);
void BKE_ptcache_file_close(PTCacheFile *pf);
int BKE_ptcache_file_read_floats(PTCacheFile *pf, float *f, int tot);
int BKE_ptcache_file_write_floats(PTCacheFile *pf, float *f, int tot);
void BKE_ptcache_update_info(PTCacheID *pid);
/* General cache reading/writing */
int BKE_ptcache_read_cache(PTCacheReader *reader);
int BKE_ptcache_write_cache(PTCacheWriter *writer);
/*********** General cache reading/writing ******************/
/* Continue physics */
/* Size of cache data type. */
int BKE_ptcache_data_size(int data_type);
/* Copy a specific data type from cache data to point data. */
void BKE_ptcache_data_get(void **data, int type, int index, void *to);
/* Copy a specific data type from point data to cache data. */
void BKE_ptcache_data_set(void **data, int type, void *from);
/* Main cache reading call. */
int BKE_ptcache_read_cache(PTCacheID *pid, float cfra, float frs_sec);
/* Main cache writing call. */
int BKE_ptcache_write_cache(PTCacheID *pid, int cfra);
/****************** Continue physics ***************/
void BKE_ptcache_set_continue_physics(struct Scene *scene, int enable);
int BKE_ptcache_get_continue_physics(void);
/* Point Cache */
struct PointCache *BKE_ptcache_add(void);
/******************* Allocate & free ***************/
struct PointCache *BKE_ptcache_add(struct ListBase *ptcaches);
void BKE_ptache_free_mem(struct PointCache *cache);
void BKE_ptcache_free(struct PointCache *cache);
struct PointCache *BKE_ptcache_copy(struct PointCache *cache);
void BKE_ptcache_free_list(struct ListBase *ptcaches);
struct PointCache *BKE_ptcache_copy_list(struct ListBase *ptcaches_new, struct ListBase *ptcaches_old);
/* Baking */
/********************** Baking *********************/
/* Bakes cache with cache_step sized jumps in time, not accurate but very fast. */
void BKE_ptcache_quick_cache_all(struct Scene *scene);
/* Bake cache or simulate to current frame with settings defined in the baker. */
void BKE_ptcache_make_cache(struct PTCacheBaker* baker);
/* Convert disk cache to memory cache. */
void BKE_ptcache_disk_to_mem(struct PTCacheID *pid);
/* Convert memory cache to disk cache. */
void BKE_ptcache_mem_to_disk(struct PTCacheID *pid);
/* Convert disk cache to memory cache and vice versa. Clears the cache that was converted. */
void BKE_ptcache_toggle_disk_cache(struct PTCacheID *pid);
/* Loads simulation from external (disk) cache files. */
void BKE_ptcache_load_external(struct PTCacheID *pid);
#endif

View File

@@ -40,6 +40,12 @@ struct AviCodecData;
struct QuicktimeCodecData;
struct RenderData;
struct Text;
struct Main;
#define SCE_COPY_EMPTY 0
#define SCE_COPY_LINK_OB 1
#define SCE_COPY_LINK_DATA 2
#define SCE_COPY_FULL 3
/* note; doesn't work when scene is empty */
#define SETLOOPER(s, b) sce= s, b= (Base*)sce->base.first; b; b= (Base*)(b->next?b->next:sce->set?(sce=sce->set)->base.first:NULL)
@@ -48,13 +54,16 @@ struct Text;
void free_avicodecdata(struct AviCodecData *acd);
void free_qtcodecdata(struct QuicktimeCodecData *acd);
void free_scene(struct Scene *me);
void free_scene(struct Scene *sce);
struct Scene *add_scene(char *name);
struct Base *object_in_scene(struct Object *ob, struct Scene *sce);
void set_scene_bg(struct Scene *sce);
void set_scene_name(char *name);
struct Scene *copy_scene(struct Main *bmain, struct Scene *sce, int type);
void unlink_scene(struct Main *bmain, struct Scene *sce, struct Scene *newsce);
int next_object(struct Scene *scene, int val, struct Base **base, struct Object **ob);
struct Object *scene_find_camera(struct Scene *sc);

View File

@@ -33,7 +33,7 @@
struct MFace;
struct MultireModifierData;
struct MVert;
struct Sculpt;
struct Object;
struct StrokeCache;
typedef struct SculptSession {
@@ -63,13 +63,10 @@ typedef struct SculptSession {
float (*mesh_co_orig)[3]; /* Copy of the mesh vertices' locations */
float *layer_disps; /* Displacements for each vertex */
void *cursor; /* wm handle */
struct SculptStroke *stroke;
struct StrokeCache *cache;
} SculptSession;
void sculptsession_free(struct Sculpt *sculpt);
void free_sculptsession(SculptSession **);
#endif

View File

@@ -184,3 +184,7 @@ int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test);
void free_imbuf_seq(struct ListBase * seqbasep, int check_mem_usage);
void seq_update_sound(struct Sequence *seq);
void clear_scene_in_allseqs(struct Scene *sce);

View File

@@ -68,8 +68,5 @@ extern void sbObjectToSoftbody(struct Object *ob);
/* pass NULL to unlink again */
extern void sbSetInterruptCallBack(int (*f)(void));
/* writing to cache for bake editing */
extern void softbody_write_cache(struct Object *ob, struct SoftBody *soft, int cfra);
#endif

View File

@@ -39,8 +39,6 @@ struct Main;
void sound_init();
void sound_reinit(struct bContext *C);
void sound_exit();
struct bSound* sound_new_file(struct Main *main, char* filename);

View File

@@ -0,0 +1,68 @@
/**
*
* ***** 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.
*
* Contributor(s): Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifndef BKE_UNIT_H
#define BKE_UNIT_H
#ifdef __cplusplus
extern "C" {
#endif
/* in all cases the value is assumed to be scaled by the user preference */
/* humanly readable representation of a value in units (used for button drawing) */
void bUnit_AsString(char *str, int len_max, double value, int prec, int system, int type, int split, int pad);
/* replace units with values, used before python button evaluation */
int bUnit_ReplaceString(char *str, int len_max, char *str_prev, double scale_pref, int system, int type);
/* the size of the unit used for this value (used for calculating the ckickstep) */
double bUnit_ClosestScalar(double value, int system, int type);
/* base scale for these units */
double bUnit_BaseScalar(int system, int type);
/* loop over scales, coudl add names later */
//double bUnit_Iter(void **unit, char **name, int system, int type);
void bUnit_GetSystem(void **usys_pt, int *len, int system, int type);
char* bUnit_GetName(void *usys_pt, int index);
char* bUnit_GetNameDisplay(void *usys_pt, int index);
double bUnit_GetScaler(void *usys_pt, int index);
/* aligned with PropertyUnit */
#define B_UNIT_NONE 0
#define B_UNIT_LENGTH 1
#define B_UNIT_AREA 2
#define B_UNIT_VOLUME 3
#define B_UNIT_MASS 4
#define B_UNIT_ROTATION 5
#define B_UNIT_TIME 6
#define B_UNIT_VELOCITY 7
#define B_UNIT_ACCELERATION 8
#ifdef __cplusplus
}
#endif
#endif /* BKE_UNIT_H */

View File

@@ -62,11 +62,6 @@
#define SHIFT3(type, a, b, c) { type tmp; tmp = a; a = c; c = b; b = tmp; }
#define SHIFT4(type, a, b, c, d) { type tmp; tmp = a; a = d; d = c; c = b; b = tmp; }
/* string compare */
#define STREQ(str, a) ( strcmp((str), (a))==0 )
#define STREQ2(str, a, b) ( STREQ(str, a) || STREQ(str, b) )
#define STREQ3(str, a, b, c) ( STREQ2(str, a, b) || STREQ(str, c) )
/* min/max */
#define MIN2(x,y) ( (x)<(y) ? (x) : (y) )
#define MIN3(x,y,z) MIN2( MIN2((x),(y)) , (z) )
@@ -100,8 +95,6 @@
if( (max)[0]<(vec)[0] ) (max)[0]= (vec)[0]; \
if( (max)[1]<(vec)[1] ) (max)[1]= (vec)[1]; }
#define MINSIZE(val, size) ( ((val)>=0.0) ? (((val)<(size)) ? (size): (val)) : ( ((val)>(-size)) ? (-size) : (val)))
/* some math and copy defines */
#define SWAP(type, a, b) { type sw_ap; sw_ap=(a); (a)=(b); (b)=sw_ap; }

View File

@@ -55,12 +55,6 @@ IF(WITH_QUICKTIME)
ADD_DEFINITIONS(-DWITH_QUICKTIME)
ENDIF(WITH_QUICKTIME)
IF(WITH_SDL)
SET(INC ${INC} ${SDL_INC})
ELSE(WITH_SDL)
ADD_DEFINITIONS(-DDISABLE_SDL)
ENDIF(WITH_SDL)
IF(WITH_FFMPEG)
SET(INC ${INC} ${FFMPEG_INC})
ADD_DEFINITIONS(-DWITH_FFMPEG)

View File

@@ -72,6 +72,7 @@
#include "BKE_modifier.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_subsurf.h"
#include "BKE_texture.h"
#include "BKE_utildefines.h"
@@ -2076,7 +2077,7 @@ static void clear_mesh_caches(Object *ob)
static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask)
{
Object *obact = scene->basact?scene->basact->object:NULL;
int editing = (FACESEL_PAINT_TEST)|(G.f & G_PARTICLEEDIT);
int editing = paint_facesel_test(ob)|(ob && ob->mode & OB_MODE_PARTICLE_EDIT);
int needMapping = editing && (ob==obact);
float min[3], max[3];

View File

@@ -342,6 +342,21 @@ void BKE_keyingset_add_destination (KeyingSet *ks, ID *id, const char group_name
BLI_addtail(&ks->paths, ksp);
}
/* Copy all KeyingSets in the given list */
void BKE_keyingsets_copy(ListBase *newlist, ListBase *list)
{
KeyingSet *ksn;
KS_Path *kspn;
BLI_duplicatelist(newlist, list);
for(ksn=newlist->first; ksn; ksn=ksn->next) {
BLI_duplicatelist(&ksn->paths, &ksn->paths);
for(kspn=ksn->paths.first; kspn; kspn=kspn->next)
kspn->rna_path= MEM_dupallocN(kspn->rna_path);
}
}
/* Freeing Tools --------------------------- */

View File

@@ -226,7 +226,7 @@ static void clear_global(void)
G.main= NULL;
G.f &= ~(G_WEIGHTPAINT + G_VERTEXPAINT + G_FACESELECT + G_PARTICLEEDIT);
G.f &= ~(G_FACESELECT);
}
/* make sure path names are correct for OS */

View File

@@ -35,6 +35,7 @@
#include "DNA_brush_types.h"
#include "DNA_color_types.h"
#include "DNA_image_types.h"
#include "DNA_object_types.h"
#include "DNA_texture_types.h"
#include "DNA_scene_types.h"
#include "DNA_windowmanager_types.h"
@@ -50,6 +51,7 @@
#include "BKE_image.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_paint.h"
#include "BKE_texture.h"
#include "BKE_utildefines.h"
@@ -61,7 +63,7 @@
/* Datablock add/copy/free/make_local */
Brush *add_brush(char *name)
Brush *add_brush(const char *name)
{
Brush *brush;
@@ -152,7 +154,7 @@ void make_local_brush(Brush *brush)
}
for(scene= G.main->scene.first; scene; scene=scene->id.next)
if(scene->toolsettings->imapaint.brush==brush) {
if(paint_brush(&scene->toolsettings->imapaint.paint)==brush) {
if(scene->id.lib) lib= 1;
else local= 1;
}
@@ -174,9 +176,9 @@ void make_local_brush(Brush *brush)
brushn->id.flag |= LIB_FAKEUSER;
for(scene= G.main->scene.first; scene; scene=scene->id.next)
if(scene->toolsettings->imapaint.brush==brush)
if(paint_brush(&scene->toolsettings->imapaint.paint)==brush)
if(scene->id.lib==0) {
scene->toolsettings->imapaint.brush= brushn;
paint_brush_set(&scene->toolsettings->imapaint.paint, brushn);
brushn->id.us++;
brush->id.us--;
}
@@ -185,20 +187,7 @@ void make_local_brush(Brush *brush)
/* Library Operations */
Brush **current_brush_source(Scene *sce)
{
if(G.f & G_SCULPTMODE)
return &sce->toolsettings->sculpt->brush;
else if(G.f & G_VERTEXPAINT)
return &sce->toolsettings->vpaint->brush;
else if(G.f & G_WEIGHTPAINT)
return &sce->toolsettings->wpaint->brush;
else if(G.f & G_TEXTUREPAINT)
return &sce->toolsettings->imapaint.brush;
return NULL;
}
int brush_set_nr(Brush **current_brush, int nr)
int brush_set_nr(Brush **current_brush, int nr, const char *name)
{
ID *idtest, *id;
@@ -207,7 +196,7 @@ int brush_set_nr(Brush **current_brush, int nr)
if(idtest==0) { /* new brush */
if(id) idtest= (ID *)copy_brush((Brush *)id);
else idtest= (ID *)add_brush("Brush");
else idtest= (ID *)add_brush(name);
idtest->us--;
}
if(idtest!=id) {
@@ -300,6 +289,13 @@ void brush_curve_preset(Brush *b, BrushCurvePreset preset)
curvemapping_changed(b->curve, 0);
}
static MTex *brush_active_texture(Brush *brush)
{
if(brush && brush->texact >= 0)
return brush->mtex[brush->texact];
return NULL;
}
int brush_texture_set_nr(Brush *brush, int nr)
{
ID *idtest, *id=NULL;
@@ -374,10 +370,10 @@ int brush_clone_image_delete(Brush *brush)
return 0;
}
void brush_check_exists(Brush **brush)
void brush_check_exists(Brush **brush, const char *name)
{
if(*brush==NULL)
brush_set_nr(brush, 1);
brush_set_nr(brush, 1, name);
}
/* Brush Sampling */
@@ -1077,8 +1073,11 @@ void brush_radial_control_invoke(wmOperator *op, Brush *br, float size_weight)
original_value = br->size * size_weight;
else if(mode == WM_RADIALCONTROL_STRENGTH)
original_value = br->alpha;
else if(mode == WM_RADIALCONTROL_ANGLE)
original_value = br->rot;
else if(mode == WM_RADIALCONTROL_ANGLE) {
MTex *mtex = brush_active_texture(br);
if(mtex)
original_value = mtex->rot;
}
RNA_float_set(op->ptr, "initial_value", original_value);
op->customdata = brush_gen_radial_control_imbuf(br);
@@ -1094,8 +1093,11 @@ int brush_radial_control_exec(wmOperator *op, Brush *br, float size_weight)
br->size = new_value * size_weight;
else if(mode == WM_RADIALCONTROL_STRENGTH)
br->alpha = new_value;
else if(mode == WM_RADIALCONTROL_ANGLE)
br->rot = new_value * conv;
else if(mode == WM_RADIALCONTROL_ANGLE) {
MTex *mtex = brush_active_texture(br);
if(mtex)
mtex->rot = new_value * conv;
}
return OPERATOR_FINISHED;
}

View File

@@ -340,92 +340,6 @@ void bvhselftree_update_from_cloth(ClothModifierData *clmd, int moving)
}
}
int modifiers_indexInObject(Object *ob, ModifierData *md_seek);
static void cloth_write_state(int index, void *cloth_v, float *data)
{
Cloth *cloth= cloth_v;
ClothVertex *vert = cloth->verts + index;
memcpy(data, vert->x, 3 * sizeof(float));
memcpy(data + 3, vert->xconst, 3 * sizeof(float));
memcpy(data + 6, vert->v, 3 * sizeof(float));
}
static void cloth_read_state(int index, void *cloth_v, float *data)
{
Cloth *cloth= cloth_v;
ClothVertex *vert = cloth->verts + index;
memcpy(vert->x, data, 3 * sizeof(float));
memcpy(vert->xconst, data + 3, 3 * sizeof(float));
memcpy(vert->v, data + 6, 3 * sizeof(float));
}
static void cloth_cache_interpolate(int index, void *cloth_v, float frs_sec, float cfra, float cfra1, float cfra2, float *data1, float *data2)
{
Cloth *cloth= cloth_v;
ClothVertex *vert = cloth->verts + index;
ParticleKey keys[4];
float dfra;
if(cfra1 == cfra2) {
cloth_read_state(index, cloth, data1);
return;
}
memcpy(keys[1].co, data1, 3 * sizeof(float));
memcpy(keys[1].vel, data1 + 6, 3 * sizeof(float));
memcpy(keys[2].co, data2, 3 * sizeof(float));
memcpy(keys[2].vel, data2 + 6, 3 * sizeof(float));
dfra = cfra2 - cfra1;
VecMulf(keys[1].vel, dfra);
VecMulf(keys[2].vel, dfra);
psys_interpolate_particle(-1, keys, (cfra - cfra1) / dfra, keys, 1);
VecMulf(keys->vel, 1.0f / dfra);
memcpy(vert->x, keys->co, 3 * sizeof(float));
memcpy(vert->v, keys->vel, 3 * sizeof(float));
/* not sure what to do with this - jahka */
memcpy(vert->xconst, data1 + 3, 3 * sizeof(float));
}
void cloth_write_cache(Object *ob, ClothModifierData *clmd, int cfra)
{
PTCacheWriter writer;
PTCacheID pid;
BKE_ptcache_id_from_cloth(&pid, ob, clmd);
writer.calldata = clmd->clothObject;
writer.cfra = cfra;
writer.set_elem = cloth_write_state;
writer.pid = &pid;
writer.totelem = clmd->clothObject->numverts;
BKE_ptcache_write_cache(&writer);
}
int cloth_read_cache(Scene *scene, Object *ob, ClothModifierData *clmd, float cfra, int *old_framenr)
{
PTCacheReader reader;
PTCacheID pid;
BKE_ptcache_id_from_cloth(&pid, ob, clmd);
reader.calldata = clmd->clothObject;
reader.cfra = cfra;
reader.interpolate_elem = cloth_cache_interpolate;
reader.old_frame = old_framenr;
reader.pid = &pid;
reader.scene = scene;
reader.set_elem = cloth_read_state;
reader.totelem = clmd->clothObject->numverts;
return BKE_ptcache_read_cache(&reader);
}
void cloth_clear_cache(Object *ob, ClothModifierData *clmd, float framenr)
{
PTCacheID pid;
@@ -512,7 +426,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
PTCacheID pid;
float timescale;
int framedelta, framenr, startframe, endframe;
int cache_result, old_framenr;
int cache_result;
clmd->scene= scene; /* nice to pass on later :) */
framenr= (int)scene->r.cfra;
@@ -583,7 +497,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
return result;
/* try to read from cache */
cache_result = cloth_read_cache(scene, ob, clmd, framenr, &old_framenr);
cache_result = BKE_ptcache_read_cache(&pid, (float)framenr, scene->r.frs_sec);
if(cache_result == PTCACHE_READ_EXACT || cache_result == PTCACHE_READ_INTERPOLATED) {
cache->flag |= PTCACHE_SIMULATION_VALID;
@@ -600,7 +514,6 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
implicit_set_positions(clmd);
cache->flag |= PTCACHE_SIMULATION_VALID;
cache->simframe= old_framenr;
}
else if(ob->id.lib || (cache->flag & PTCACHE_BAKED)) {
/* if baked and nothing in cache, do nothing */
@@ -624,7 +537,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
else {
/* if on second frame, write cache for first frame */
if(cache->simframe == startframe && (cache->flag & PTCACHE_OUTDATED || cache->last_exact==0))
cloth_write_cache(ob, clmd, startframe);
BKE_ptcache_write_cache(&pid, startframe);
clmd->sim_parms->timescale *= framenr - cache->simframe;
@@ -638,7 +551,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob,
cache->last_exact= 0;
}
else
cloth_write_cache(ob, clmd, framenr);
BKE_ptcache_write_cache(&pid, framenr);
cloth_to_object (ob, clmd, result);
}

View File

@@ -34,6 +34,7 @@
#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
#include "DNA_windowmanager_types.h"
#include "DNA_object_types.h"
#include "RNA_access.h"
@@ -43,6 +44,7 @@
#include "BKE_context.h"
#include "BKE_main.h"
#include "BKE_screen.h"
#include "BKE_global.h"
#include <string.h>
@@ -217,7 +219,10 @@ struct ARegion *CTX_wm_menu(const bContext *C)
struct ReportList *CTX_wm_reports(const bContext *C)
{
return &(C->wm.manager->reports);
if (C->wm.manager)
return &(C->wm.manager->reports);
return NULL;
}
View3D *CTX_wm_view3d(const bContext *C)
@@ -656,6 +661,69 @@ Scene *CTX_data_scene(const bContext *C)
return C->data.scene;
}
int CTX_data_mode_enum(const bContext *C)
{
Object *obedit= CTX_data_edit_object(C);
if(obedit) {
switch(obedit->type) {
case OB_MESH:
return CTX_MODE_EDIT_MESH;
case OB_CURVE:
return CTX_MODE_EDIT_CURVE;
case OB_SURF:
return CTX_MODE_EDIT_SURFACE;
case OB_FONT:
return CTX_MODE_EDIT_TEXT;
case OB_ARMATURE:
return CTX_MODE_EDIT_ARMATURE;
case OB_MBALL:
return CTX_MODE_EDIT_METABALL;
case OB_LATTICE:
return CTX_MODE_EDIT_LATTICE;
}
}
else {
Object *ob = CTX_data_active_object(C);
if(ob) {
if(ob->mode & OB_MODE_POSE) return CTX_MODE_POSE;
else if(ob->mode & OB_MODE_SCULPT) return CTX_MODE_SCULPT;
else if(ob->mode & OB_MODE_WEIGHT_PAINT) return CTX_MODE_PAINT_WEIGHT;
else if(ob->mode & OB_MODE_VERTEX_PAINT) return CTX_MODE_PAINT_VERTEX;
else if(ob->mode & OB_MODE_TEXTURE_PAINT) return CTX_MODE_PAINT_TEXTURE;
else if(ob->mode & OB_MODE_PARTICLE_EDIT) return CTX_MODE_PARTICLE;
}
}
return CTX_MODE_OBJECT;
}
/* would prefer if we can use the enum version below over this one - Campbell */
/* must be aligned with above enum */
static char *data_mode_strings[] = {
"mesh_edit",
"curve_edit",
"surface_edit",
"text_edit",
"armature_edit",
"mball_edit",
"lattice_edit",
"posemode",
"sculpt_mode",
"weightpaint",
"vertexpaint",
"texturepaint",
"particlemode",
"objectmode",
0
};
char *CTX_data_mode_string(const bContext *C)
{
return data_mode_strings[CTX_data_mode_enum(C)];
}
void CTX_data_scene_set(bContext *C, Scene *scene)
{
C->data.scene= scene;

View File

@@ -160,7 +160,7 @@ static AdrBit2Path ma_mode_bits[]= {
// {MA_SHADOW, "shadow", 0},
// {MA_SHLESS, "shadeless", 0},
// ...
{MA_RAYTRANSP, "raytrace_transparency.enabled", 0},
{MA_RAYTRANSP, "transparency", 0},
{MA_RAYMIRROR, "raytrace_mirror.enabled", 0},
// {MA_HALO, "type", MA_TYPE_HALO}
};

View File

@@ -170,7 +170,7 @@ void init_material(Material *ma)
ma->sss_front= 1.0f;
ma->sss_back= 1.0f;
ma->mode= MA_TRACEBLE|MA_SHADBUF|MA_SHADOW|MA_RADIO|MA_RAYBIAS|MA_TANGENT_STR;
ma->mode= MA_TRACEBLE|MA_SHADBUF|MA_SHADOW|MA_RAYBIAS|MA_TANGENT_STR;
ma->preview = NULL;
}
@@ -678,9 +678,6 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
if(needtang) ma->mode |= MA_NORMAP_TANG;
else ma->mode &= ~MA_NORMAP_TANG;
if(r_mode & R_RADIO)
if(ma->mode & MA_RADIO) needuv= 1;
if(ma->mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) {
needuv= 1;
if(r_mode & R_OSA) ma->texco |= TEXCO_OSA; /* for texfaces */
@@ -689,7 +686,7 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
/* since the raytracer doesnt recalc O structs for each ray, we have to preset them all */
if(r_mode & R_RAYTRACE) {
if(ma->mode & (MA_RAYMIRROR|MA_RAYTRANSP|MA_SHADOW_TRA)) {
if((ma->mode & (MA_RAYMIRROR|MA_SHADOW_TRA)) || ((ma->mode && MA_TRANSP) && (ma->mode & MA_RAYTRANSP))) {
ma->texco |= NEED_UV|TEXCO_ORCO|TEXCO_REFL|TEXCO_NORM;
if(r_mode & R_OSA) ma->texco |= TEXCO_OSA;
}

View File

@@ -5858,8 +5858,7 @@ static void smokeModifier_updateDepgraph(
ModifierData *md, DagForest *forest, Scene *scene, Object *ob,
DagNode *obNode)
{
SmokeModifierData *smd = (SmokeModifierData *) md;
/*
/*SmokeModifierData *smd = (SmokeModifierData *) md;
if(smd && (smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain)
{
if(smd->domain->fluid_group)
@@ -5893,7 +5892,7 @@ static void clothModifier_initData(ModifierData *md)
clmd->sim_parms = MEM_callocN(sizeof(ClothSimSettings), "cloth sim parms");
clmd->coll_parms = MEM_callocN(sizeof(ClothCollSettings), "cloth coll parms");
clmd->point_cache = BKE_ptcache_add();
clmd->point_cache = BKE_ptcache_add(&clmd->ptcaches);
/* check for alloc failing */
if(!clmd->sim_parms || !clmd->coll_parms || !clmd->point_cache)
@@ -5972,12 +5971,13 @@ static void clothModifier_copyData(ModifierData *md, ModifierData *target)
MEM_freeN(tclmd->sim_parms);
if(tclmd->coll_parms)
MEM_freeN(tclmd->coll_parms);
if(tclmd->point_cache)
BKE_ptcache_free(tclmd->point_cache);
BKE_ptcache_free_list(&tclmd->ptcaches);
tclmd->point_cache = NULL;
tclmd->sim_parms = MEM_dupallocN(clmd->sim_parms);
tclmd->coll_parms = MEM_dupallocN(clmd->coll_parms);
tclmd->point_cache = BKE_ptcache_copy(clmd->point_cache);
tclmd->point_cache = BKE_ptcache_copy_list(&tclmd->ptcaches, &clmd->ptcaches);
tclmd->clothObject = NULL;
}
@@ -6001,8 +6001,9 @@ static void clothModifier_freeData(ModifierData *md)
MEM_freeN(clmd->sim_parms);
if(clmd->coll_parms)
MEM_freeN(clmd->coll_parms);
if(clmd->point_cache)
BKE_ptcache_free(clmd->point_cache);
BKE_ptcache_free_list(&clmd->ptcaches);
clmd->point_cache = NULL;
}
}

View File

@@ -220,6 +220,7 @@ static void multires_subdisp(DerivedMesh *orig, Mesh *me, DerivedMesh *final, in
int skip = multires_side_tot[totlvl - lvl] - 1;
int i, j, k;
memset(&mmd_sub, 0, sizeof(MultiresModifierData));
mmd_sub.lvl = mmd_sub.totlvl = totlvl;
mrdm = multires_dm_create_from_derived(&mmd_sub, orig, me, 0, 0);
@@ -465,6 +466,7 @@ void multiresModifier_subdivide(MultiresModifierData *mmd, Object *ob, int dista
MultiresModifierData mmd_sub;
orig = CDDM_from_mesh(me, NULL);
memset(&mmd_sub, 0, sizeof(MultiresModifierData));
mmd_sub.lvl = mmd_sub.totlvl = mmd->lvl;
mrdm = multires_dm_create_from_derived(&mmd_sub, orig, me, 0, 0);
totsubvert = mrdm->getNumVerts(mrdm);

View File

@@ -3112,3 +3112,29 @@ void free_nodesystem(void)
BLI_freelistN(&node_all_shaders);
BLI_freelistN(&node_all_textures);
}
/* called from unlink_scene, when deleting a scene goes over all scenes
* other than the input, checks if they have render layer nodes referencing
* the to-be-deleted scene, and resets them to NULL. */
/* XXX needs to get current scene then! */
void clear_scene_in_nodes(Main *bmain, Scene *sce)
{
Scene *sce1;
bNode *node;
for(sce1= bmain->scene.first; sce1; sce1=sce1->id.next) {
if(sce1!=sce) {
if(sce1->nodetree) {
for(node= sce1->nodetree->nodes.first; node; node= node->next) {
if(node->type==CMP_NODE_R_LAYERS) {
Scene *nodesce= (Scene *)node->id;
if (nodesce==sce) node->id = NULL;
}
}
}
}
}
}

View File

@@ -107,6 +107,7 @@
#include "BKE_sca.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "BKE_sculpt.h"
#include "BKE_softbody.h"
#include "LBM_fluidsim.h"
@@ -222,6 +223,34 @@ void object_free_display(Object *ob)
freedisplist(&ob->disp);
}
void free_sculptsession(SculptSession **ssp)
{
if(ssp && *ssp) {
SculptSession *ss = *ssp;
if(ss->projverts)
MEM_freeN(ss->projverts);
if(ss->fmap)
MEM_freeN(ss->fmap);
if(ss->fmap_mem)
MEM_freeN(ss->fmap_mem);
if(ss->texcache)
MEM_freeN(ss->texcache);
if(ss->layer_disps)
MEM_freeN(ss->layer_disps);
if(ss->mesh_co_orig)
MEM_freeN(ss->mesh_co_orig);
MEM_freeN(ss);
*ssp = NULL;
}
}
/* do not free object itself */
void free_object(Object *ob)
{
@@ -276,6 +305,8 @@ void free_object(Object *ob)
if(ob->soft) sbFree(ob->soft);
if(ob->bsoft) bsbFree(ob->bsoft);
if(ob->gpulamp.first) GPU_lamp_free(ob);
free_sculptsession(&ob->sculpt);
}
static void unlink_object__unlinkModifierLinks(void *userData, Object *ob, Object **obpoin)
@@ -1026,7 +1057,7 @@ SoftBody *copy_softbody(SoftBody *sb)
sbn->scratch= NULL;
sbn->pointcache= BKE_ptcache_copy(sb->pointcache);
sbn->pointcache= BKE_ptcache_copy_list(&sbn->ptcaches, &sb->ptcaches);
return sbn;
}
@@ -1085,7 +1116,7 @@ ParticleSystem *copy_particlesystem(ParticleSystem *psys)
psysn->reactevents.first = psysn->reactevents.last = NULL;
psysn->renderdata = NULL;
psysn->pointcache= BKE_ptcache_copy(psys->pointcache);
psysn->pointcache= BKE_ptcache_copy_list(&psysn->ptcaches, &psys->ptcaches);
id_us_plus((ID *)psysn->part);
@@ -1211,6 +1242,9 @@ Object *copy_object(Object *ob)
copy_defgroups(&obn->defbase, &ob->defbase);
copy_constraints(&obn->constraints, &ob->constraints);
obn->mode = 0;
obn->sculpt = NULL;
/* increase user numbers */
id_us_plus((ID *)obn->data);
id_us_plus((ID *)obn->dup_group);

Some files were not shown because too many files have changed in this diff Show More