merge from trunk r37405
This commit is contained in:
commit
40981d872f
|
@ -98,6 +98,10 @@ option(WITH_FFTW3 "Enable FFTW3 support (Used for smoke and audio effect
|
|||
option(WITH_BULLET "Enable Bullet (Physics Engine)" ON)
|
||||
option(WITH_GAMEENGINE "Enable Game Engine" ON)
|
||||
option(WITH_PLAYER "Build Player" OFF)
|
||||
|
||||
option(WITH_HEADLESS "Build without graphical support (renderfarm, server mode only)" OFF)
|
||||
mark_as_advanced(WITH_HEADLESS)
|
||||
|
||||
# (unix defaults to OpenMP On)
|
||||
if(UNIX AND NOT APPLE)
|
||||
option(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON)
|
||||
|
@ -184,6 +188,9 @@ if(APPLE)
|
|||
option(WITH_LIBS10.5 "Use 10.5 libs (needed for 64bit builds)" OFF)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Check for conflicting/unsupported configurations
|
||||
|
||||
if(NOT WITH_GAMEENGINE AND WITH_PLAYER)
|
||||
message(FATAL_ERROR "WITH_PLAYER requires WITH_GAMEENGINE")
|
||||
endif()
|
||||
|
@ -205,6 +212,17 @@ if(WITH_PYTHON_MODULE AND WITH_PYTHON_INSTALL)
|
|||
message(FATAL_ERROR "WITH_PYTHON_MODULE requires WITH_PYTHON_INSTALL to be OFF")
|
||||
endif()
|
||||
|
||||
if(WITH_CODEC_QUICKTIME AND MINGW)
|
||||
message(FATAL_ERROR "MINGW requires WITH_CODEC_QUICKTIME to be OFF "
|
||||
"because it is currently unsupported, remove this "
|
||||
"line if youre a developer who wants to add support.")
|
||||
endif()
|
||||
|
||||
# may as well build python module without a UI
|
||||
if(WITH_PYTHON_MODULE)
|
||||
set(WITH_HEADLESS ON)
|
||||
endif()
|
||||
|
||||
# remove old vars
|
||||
unset(WITH_INSTALL CACHE)
|
||||
|
||||
|
@ -409,15 +427,19 @@ if(UNIX AND NOT APPLE)
|
|||
unset(JEMALLOC)
|
||||
endif()
|
||||
|
||||
find_package(X11 REQUIRED)
|
||||
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
|
||||
mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
|
||||
|
||||
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
|
||||
set(LLIBS "-lutil -lc -lm -lpthread -lstdc++ ${X11_X11_LIB}")
|
||||
set(LLIBS "-lutil -lc -lm -lpthread -lstdc++")
|
||||
|
||||
if(WITH_X11_XINPUT)
|
||||
list(APPEND LLIBS ${X11_Xinput_LIB})
|
||||
if(NOT WITH_HEADLESS)
|
||||
find_package(X11 REQUIRED)
|
||||
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
|
||||
mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
|
||||
|
||||
list(APPEND LLIBS ${X11_X11_LIB})
|
||||
|
||||
if(WITH_X11_XINPUT)
|
||||
list(APPEND LLIBS ${X11_Xinput_LIB})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
|
@ -1019,7 +1041,7 @@ endif()
|
|||
#-----------------------------------------------------------------------------
|
||||
# Configure OpenGL.
|
||||
find_package(OpenGL)
|
||||
blender_include_dirs("${OPENGL_INCLUDE_DIR}")
|
||||
blender_include_dirs_sys("${OPENGL_INCLUDE_DIR}")
|
||||
# unset(OPENGL_LIBRARIES CACHE) # not compat with older cmake
|
||||
# unset(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake
|
||||
|
||||
|
|
18
GNUmakefile
18
GNUmakefile
|
@ -64,21 +64,19 @@ endif
|
|||
|
||||
# Build Blender
|
||||
all:
|
||||
@echo
|
||||
@echo
|
||||
@echo Configuring Blender ...
|
||||
|
||||
if test ! -f $(BUILD_DIR)/CMakeCache.txt ; then \
|
||||
mkdir -p $(BUILD_DIR) ; \
|
||||
cd $(BUILD_DIR) ; \
|
||||
cmake $(BLENDER_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE) ; \
|
||||
cmake -H$(BLENDER_DIR) -B$(BUILD_DIR) -DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE) ; \
|
||||
fi
|
||||
|
||||
@echo
|
||||
@echo
|
||||
@echo Building Blender ...
|
||||
cd $(BUILD_DIR) ; make -s -j $(NPROCS) install
|
||||
@echo
|
||||
make -C $(BUILD_DIR) -s -j $(NPROCS) install
|
||||
@echo
|
||||
@echo run blender from "$(BUILD_DIR)/bin/blender"
|
||||
@echo
|
||||
@echo
|
||||
|
||||
debug: all
|
||||
# pass
|
||||
|
@ -91,7 +89,7 @@ package_pacman:
|
|||
cd build_files/package_spec/pacman ; MAKEFLAGS="-j$(NPROCS)" makepkg --asroot
|
||||
|
||||
package_archive:
|
||||
cd $(BUILD_DIR) ; make -s package_archive
|
||||
make -C $(BUILD_DIR) -s package_archive
|
||||
@echo archive in "$(BUILD_DIR)/release"
|
||||
|
||||
# forward build targets
|
||||
|
@ -109,6 +107,6 @@ test_cmake:
|
|||
@echo "written: test_cmake_consistency.log"
|
||||
|
||||
clean:
|
||||
cd $(BUILD_DIR) ; make clean
|
||||
make -C $(BUILD_DIR) clean
|
||||
|
||||
.PHONY: all
|
||||
|
|
|
@ -306,10 +306,6 @@ if env['BF_NO_ELBEEM'] == 1:
|
|||
env['CXXFLAGS'].append('-DDISABLE_ELBEEM')
|
||||
env['CCFLAGS'].append('-DDISABLE_ELBEEM')
|
||||
|
||||
if env['WITH_BF_SDL'] == False and env['OURPLATFORM'] in ('win32-vc', 'win32-ming', 'win64-vc'):
|
||||
env['PLATFORM_LINKFLAGS'].remove('/ENTRY:mainCRTStartup')
|
||||
env['PLATFORM_LINKFLAGS'].append('/ENTRY:main')
|
||||
|
||||
# lastly we check for root_build_dir ( we should not do before, otherwise we might do wrong builddir
|
||||
B.root_build_dir = env['BF_BUILDDIR']
|
||||
B.doc_build_dir = os.path.join(env['BF_INSTALLDIR'], 'doc')
|
||||
|
@ -409,17 +405,18 @@ if B.arguments.get('BF_PRIORITYLIST', '0')=='1':
|
|||
B.propose_priorities()
|
||||
|
||||
dobj = B.buildinfo(env, "dynamic") + B.resources
|
||||
creob = B.creator(env)
|
||||
thestatlibs, thelibincs = B.setup_staticlibs(env)
|
||||
thesyslibs = B.setup_syslibs(env)
|
||||
|
||||
if 'blender' in B.targets or not env['WITH_BF_NOBLENDER']:
|
||||
env.BlenderProg(B.root_build_dir, "blender", mainlist + thestatlibs + dobj, thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender')
|
||||
env.BlenderProg(B.root_build_dir, "blender", creob + mainlist + thestatlibs + dobj, thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender')
|
||||
if env['WITH_BF_PLAYER']:
|
||||
playerlist = B.create_blender_liblist(env, 'player')
|
||||
playerlist += B.create_blender_liblist(env, 'player2')
|
||||
playerlist += B.create_blender_liblist(env, 'intern')
|
||||
playerlist += B.create_blender_liblist(env, 'extern')
|
||||
env.BlenderProg(B.root_build_dir, "blenderplayer", playerlist + thestatlibs + dobj, thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer')
|
||||
env.BlenderProg(B.root_build_dir, "blenderplayer", dobj + playerlist + thestatlibs, thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer')
|
||||
|
||||
##### Now define some targets
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ c['builders'] = []
|
|||
buildernames = []
|
||||
|
||||
|
||||
def add_builder(c, name, libdir, factory):
|
||||
def add_builder(c, name, libdir, factory, branch=''):
|
||||
slavenames = []
|
||||
|
||||
for slave in master_private.slaves:
|
||||
|
@ -61,16 +61,18 @@ def add_builder(c, name, libdir, factory):
|
|||
slavenames.append(slave['name'])
|
||||
|
||||
if len(slavenames) > 0:
|
||||
f = factory(name, libdir)
|
||||
f = factory(name, libdir, branch)
|
||||
c['builders'].append(BuilderConfig(name=name, slavenames=slavenames, factory=f, category='blender'))
|
||||
buildernames.append(name)
|
||||
|
||||
# common steps
|
||||
|
||||
|
||||
def svn_step():
|
||||
return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/blender', mode='update', defaultBranch='trunk', workdir='blender')
|
||||
|
||||
def svn_step(branch=''):
|
||||
if branch:
|
||||
return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/branches/%%BRANCH%%', mode='update', defaultBranch=branch, workdir='blender')
|
||||
else:
|
||||
return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/blender', mode='update', defaultBranch='trunk', workdir='blender')
|
||||
|
||||
def lib_svn_step(dir):
|
||||
return SVN(name='lib svn', baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/lib/' + dir, mode='update', defaultBranch='trunk', workdir='lib/' + dir)
|
||||
|
@ -78,7 +80,7 @@ def lib_svn_step(dir):
|
|||
# generic builder
|
||||
|
||||
|
||||
def generic_builder(id, libdir=""):
|
||||
def generic_builder(id, libdir='', branch=''):
|
||||
filename = 'buildbot_upload_' + id + '.zip'
|
||||
compile_script = '../blender/build_files/buildbot/slave_compile.py'
|
||||
test_script = '../blender/build_files/buildbot/slave_test.py'
|
||||
|
@ -86,13 +88,13 @@ def generic_builder(id, libdir=""):
|
|||
unpack_script = 'master_unpack.py'
|
||||
|
||||
f = BuildFactory()
|
||||
f.addStep(svn_step())
|
||||
f.addStep(svn_step(branch))
|
||||
if libdir != '':
|
||||
f.addStep(lib_svn_step(libdir))
|
||||
|
||||
f.addStep(Compile(command=['python', compile_script, id]))
|
||||
f.addStep(Test(command=['python', test_script, id]))
|
||||
f.addStep(ShellCommand(name='package', command=['python', pack_script, id], description='packaging', descriptionDone='packaged'))
|
||||
f.addStep(ShellCommand(name='package', command=['python', pack_script, id, branch], description='packaging', descriptionDone='packaged'))
|
||||
if id.find('cmake') != -1:
|
||||
f.addStep(FileUpload(name='upload', slavesrc='buildbot_upload.zip', masterdest=filename, maxsize=100 * 1024 * 1024))
|
||||
else:
|
||||
|
@ -102,12 +104,19 @@ def generic_builder(id, libdir=""):
|
|||
|
||||
# builders
|
||||
|
||||
add_builder(c, 'mac_x86_64_cmake', 'darwin-9.x.universal', generic_builder)
|
||||
add_builder(c, 'mac_i386_cmake', 'darwin-9.x.universal', generic_builder)
|
||||
add_builder(c, 'mac_ppc_cmake', 'darwin-9.x.universal', generic_builder)
|
||||
add_builder(c, 'linux_x86_64_cmake', '', generic_builder)
|
||||
add_builder(c, 'mac_x86_64_scons', 'darwin-9.x.universal', generic_builder)
|
||||
add_builder(c, 'salad_mac_x86_64_scons', 'darwin-9.x.universal', generic_builder, 'soc-2011-salad')
|
||||
add_builder(c, 'mac_i386_scons', 'darwin-9.x.universal', generic_builder)
|
||||
add_builder(c, 'mac_ppc_scons', 'darwin-9.x.universal', generic_builder)
|
||||
#add_builder(c, 'linux_x86_64_cmake', '', generic_builder)
|
||||
add_builder(c, 'linux_i386_scons', '', generic_builder)
|
||||
add_builder(c, 'salad_linux_i386_scons', '', generic_builder, 'soc-2011-salad')
|
||||
add_builder(c, 'linux_x86_64_scons', '', generic_builder)
|
||||
add_builder(c, 'salad_linux_x86_64_scons', '', generic_builder, 'soc-2011-salad')
|
||||
add_builder(c, 'win32_scons', 'windows', generic_builder)
|
||||
add_builder(c, 'salad_win32_scons', 'windows', generic_builder, 'soc-2011-salad')
|
||||
#add_builder(c, 'freebsd_i386_cmake', '', generic_builder)
|
||||
#add_builder(c, 'freebsd_x86_64_cmake', '', generic_builder)
|
||||
|
||||
# SCHEDULERS
|
||||
#
|
||||
|
@ -149,7 +158,7 @@ authz_cfg = authz.Authz(
|
|||
pingBuilder=False,
|
||||
stopBuild=False,
|
||||
stopAllBuilds=False,
|
||||
cancelPendingBuild=False,
|
||||
cancelPendingBuild=True,
|
||||
)
|
||||
|
||||
c['status'].append(html.WebStatus(http_port=8010, authz=authz_cfg))
|
||||
|
|
|
@ -43,6 +43,7 @@ def get_platform(filename):
|
|||
# platform out, but there may be some variations, so we fiddle a
|
||||
# bit to handle current and hopefully future names
|
||||
filename = strip_extension(filename)
|
||||
filename = strip_extension(filename)
|
||||
|
||||
tokens = filename.split("-")
|
||||
platforms = ('osx', 'mac', 'bsd',
|
||||
|
@ -63,6 +64,21 @@ def get_platform(filename):
|
|||
|
||||
return '-'.join(platform_tokens)
|
||||
|
||||
def get_branch(filename):
|
||||
tokens = filename.split("-")
|
||||
branch = ""
|
||||
|
||||
for token in tokens:
|
||||
if branch == "":
|
||||
branch = token
|
||||
else:
|
||||
branch = branch + "-" + token
|
||||
|
||||
if token == "blender":
|
||||
return branch
|
||||
|
||||
return ""
|
||||
|
||||
# get filename
|
||||
if len(sys.argv) < 2:
|
||||
sys.stderr.write("Not enough arguments, expecting file to unpack\n")
|
||||
|
@ -88,8 +104,9 @@ if len(z.namelist()) != 1:
|
|||
package = z.namelist()[0]
|
||||
packagename = os.path.basename(package)
|
||||
|
||||
# detect platform
|
||||
# detect platform and branch
|
||||
platform = get_platform(packagename)
|
||||
branch = get_branch(packagename)
|
||||
|
||||
if platform == '':
|
||||
sys.stderr.write('Failed to detect platform ' +
|
||||
|
@ -113,10 +130,10 @@ except Exception, ex:
|
|||
sys.stderr.write('Failed to unzip package: %s\n' % str(ex))
|
||||
sys.exit(1)
|
||||
|
||||
# remove other files from the same platform
|
||||
# remove other files from the same platform and branch
|
||||
try:
|
||||
for f in os.listdir(directory):
|
||||
if platform.lower() in f.lower():
|
||||
if get_platform(f) == platform and get_branch(f) == branch:
|
||||
if f != packagename:
|
||||
os.remove(os.path.join(directory, f))
|
||||
except Exception, ex:
|
||||
|
|
|
@ -38,11 +38,11 @@ if builder.find('cmake') != -1:
|
|||
# set build options
|
||||
cmake_options = ['-DCMAKE_BUILD_TYPE:STRING=Release']
|
||||
|
||||
if builder == 'mac_x86_64_cmake':
|
||||
if builder.endswith('mac_x86_64_cmake'):
|
||||
cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=x86_64')
|
||||
elif builder == 'mac_i386_cmake':
|
||||
elif builder.endswith('mac_i386_cmake'):
|
||||
cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=i386')
|
||||
elif builder == 'mac_ppc_cmake':
|
||||
elif builder.endswith('mac_ppc_cmake'):
|
||||
cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=ppc')
|
||||
|
||||
# configure and make
|
||||
|
@ -57,7 +57,7 @@ else:
|
|||
scons_cmd = ['python', 'scons/scons.py']
|
||||
scons_options = []
|
||||
|
||||
if builder.startswith('linux'):
|
||||
if builder.find('linux') != -1:
|
||||
import shutil
|
||||
|
||||
# We're using the same rules as release builder, so tweak
|
||||
|
@ -75,10 +75,10 @@ else:
|
|||
config_dir = os.path.join(buildbot_dir, 'config')
|
||||
|
||||
configs = []
|
||||
if builder == 'linux_x86_64_scons':
|
||||
if builder.endswith('linux_x86_64_scons'):
|
||||
configs = ['user-config-player-x86_64.py',
|
||||
'user-config-x86_64.py']
|
||||
elif builder == 'linux_i386_scons':
|
||||
elif builder.endswith('linux_i386_scons'):
|
||||
configs = ['user-config-player-i686.py',
|
||||
'user-config-i686.py']
|
||||
|
||||
|
|
|
@ -33,13 +33,17 @@ if len(sys.argv) < 2:
|
|||
sys.exit(1)
|
||||
|
||||
builder = sys.argv[1]
|
||||
branch = ''
|
||||
|
||||
if len(sys.argv) >= 3:
|
||||
branch = sys.argv[2]
|
||||
|
||||
# scons does own packaging
|
||||
if builder.find('scons') != -1:
|
||||
os.chdir('../blender')
|
||||
scons_options = ['BF_QUICK=slnt', 'buildslave']
|
||||
scons_options = ['BF_QUICK=slnt', 'BUILDBOT_BRANCH=' + branch, 'buildslave']
|
||||
|
||||
if builder.startswith('linux'):
|
||||
if builder.find('linux') != -1:
|
||||
buildbot_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
config_dir = os.path.join(buildbot_dir, 'config')
|
||||
build_dir = os.path.join('..', 'build', builder)
|
||||
|
@ -52,9 +56,9 @@ if builder.find('scons') != -1:
|
|||
|
||||
config = None
|
||||
|
||||
if builder == 'linux_x86_64_scons':
|
||||
if builder.endswith('linux_x86_64_scons'):
|
||||
config = 'user-config-x86_64.py'
|
||||
elif builder == 'linux_i386_scons':
|
||||
elif builder.endswith('linux_i386_scons'):
|
||||
config = 'user-config-x86_64.py'
|
||||
|
||||
if config is not None:
|
||||
|
|
|
@ -53,8 +53,17 @@ if(NOT DEFINED PYTHON_INCLUDE_DIRS)
|
|||
if(NOT _Found_PYTHON_H)
|
||||
message(FATAL_ERROR "Python.h not found")
|
||||
endif()
|
||||
|
||||
unset(_Found_PYTHON_H)
|
||||
unset(_Python_HEADER)
|
||||
unset(_CURRENT_ABI_FLAGS)
|
||||
unset(_CURRENT_PATH)
|
||||
|
||||
endif()
|
||||
|
||||
unset(_Python_ABI_FLAGS)
|
||||
unset(_Python_PATHS)
|
||||
|
||||
#=============================================================================
|
||||
# now the python versions are found
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ cd ~/blender-svn/build-cmake
|
|||
|
||||
# cmake without copying files for fast rebuilds
|
||||
# the files from svn will be used in place
|
||||
cmake ../blender -DWITH_INSTALL:BOOL=FALSE
|
||||
cmake ../blender
|
||||
|
||||
# make blender, will take some time
|
||||
make
|
||||
|
|
|
@ -5,14 +5,29 @@
|
|||
# use it instead of include_directories()
|
||||
macro(blender_include_dirs
|
||||
includes)
|
||||
|
||||
foreach(inc ${ARGV})
|
||||
get_filename_component(abs_inc ${inc} ABSOLUTE)
|
||||
list(APPEND all_incs ${abs_inc})
|
||||
set(_ALL_INCS "")
|
||||
foreach(_INC ${ARGV})
|
||||
get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
|
||||
list(APPEND _ALL_INCS ${_ABS_INC})
|
||||
endforeach()
|
||||
include_directories(${all_incs})
|
||||
include_directories(${_ALL_INCS})
|
||||
unset(_INC)
|
||||
unset(_ABS_INC)
|
||||
unset(_ALL_INCS)
|
||||
endmacro()
|
||||
|
||||
macro(blender_include_dirs_sys
|
||||
includes)
|
||||
set(_ALL_INCS "")
|
||||
foreach(_INC ${ARGV})
|
||||
get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
|
||||
list(APPEND _ALL_INCS ${_ABS_INC})
|
||||
endforeach()
|
||||
include_directories(SYSTEM ${_ALL_INCS})
|
||||
unset(_INC)
|
||||
unset(_ABS_INC)
|
||||
unset(_ALL_INCS)
|
||||
endmacro()
|
||||
|
||||
macro(blender_source_group
|
||||
sources)
|
||||
|
@ -20,14 +35,17 @@ macro(blender_source_group
|
|||
# Group by location on disk
|
||||
source_group("Source Files" FILES CMakeLists.txt)
|
||||
|
||||
foreach(SRC ${sources})
|
||||
get_filename_component(SRC_EXT ${SRC} EXT)
|
||||
if(${SRC_EXT} MATCHES ".h" OR ${SRC_EXT} MATCHES ".hpp")
|
||||
source_group("Header Files" FILES ${SRC})
|
||||
foreach(_SRC ${sources})
|
||||
get_filename_component(_SRC_EXT ${_SRC} EXT)
|
||||
if(${_SRC_EXT} MATCHES ".h" OR ${_SRC_EXT} MATCHES ".hpp")
|
||||
source_group("Header Files" FILES ${_SRC})
|
||||
else()
|
||||
source_group("Source Files" FILES ${SRC})
|
||||
source_group("Source Files" FILES ${_SRC})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
unset(_SRC)
|
||||
unset(_SRC_EXT)
|
||||
endmacro()
|
||||
|
||||
|
||||
|
@ -35,12 +53,15 @@ endmacro()
|
|||
macro(blender_add_lib_nolist
|
||||
name
|
||||
sources
|
||||
includes)
|
||||
includes
|
||||
includes_sys)
|
||||
|
||||
# message(STATUS "Configuring library ${name}")
|
||||
|
||||
# include_directories(${includes})
|
||||
# include_directories(SYSTEM ${includes_sys})
|
||||
blender_include_dirs("${includes}")
|
||||
blender_include_dirs_sys("${includes_sys}")
|
||||
|
||||
add_library(${name} ${sources})
|
||||
|
||||
|
@ -54,9 +75,10 @@ endmacro()
|
|||
macro(blender_add_lib
|
||||
name
|
||||
sources
|
||||
includes)
|
||||
includes
|
||||
includes_sys)
|
||||
|
||||
blender_add_lib_nolist(${name} "${sources}" "${includes}")
|
||||
blender_add_lib_nolist(${name} "${sources}" "${includes}" "${includes_sys}")
|
||||
|
||||
set_property(GLOBAL APPEND PROPERTY BLENDER_LINK_LIBS ${name})
|
||||
endmacro()
|
||||
|
@ -183,10 +205,11 @@ macro(setup_liblinks
|
|||
endif()
|
||||
if(WITH_IMAGE_OPENEXR)
|
||||
if(WIN32 AND NOT UNIX)
|
||||
foreach(loop_var ${OPENEXR_LIB})
|
||||
target_link_libraries(${target} debug ${loop_var}_d)
|
||||
target_link_libraries(${target} optimized ${loop_var})
|
||||
foreach(_LOOP_VAR ${OPENEXR_LIB})
|
||||
target_link_libraries(${target} debug ${_LOOP_VAR}_d)
|
||||
target_link_libraries(${target} optimized ${_LOOP_VAR})
|
||||
endforeach()
|
||||
unset(_LOOP_VAR)
|
||||
else()
|
||||
target_link_libraries(${target} ${OPENEXR_LIB})
|
||||
endif()
|
||||
|
@ -199,10 +222,11 @@ macro(setup_liblinks
|
|||
endif()
|
||||
if(WITH_OPENCOLLADA)
|
||||
if(WIN32 AND NOT UNIX)
|
||||
foreach(loop_var ${OPENCOLLADA_LIB})
|
||||
target_link_libraries(${target} debug ${loop_var}_d)
|
||||
target_link_libraries(${target} optimized ${loop_var})
|
||||
foreach(_LOOP_VAR ${OPENCOLLADA_LIB})
|
||||
target_link_libraries(${target} debug ${_LOOP_VAR}_d)
|
||||
target_link_libraries(${target} optimized ${_LOOP_VAR})
|
||||
endforeach()
|
||||
unset(_LOOP_VAR)
|
||||
target_link_libraries(${target} debug ${PCRE_LIB}_d)
|
||||
target_link_libraries(${target} optimized ${PCRE_LIB})
|
||||
if(EXPAT_LIB)
|
||||
|
@ -459,4 +483,13 @@ macro(blender_project_hack_post)
|
|||
|
||||
unset(_reset_standard_cflags_rel)
|
||||
unset(_reset_standard_cxxflags_rel)
|
||||
|
||||
# --------------------------------------------------
|
||||
# workaround for omission in cmake 2.8.4's GNU.cmake
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
if(NOT DARWIN)
|
||||
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
|
|
@ -35,7 +35,7 @@ BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
|
|||
|
||||
WITH_BF_JACK = False
|
||||
BF_JACK = LIBDIR + '/jack'
|
||||
BF_JACK_INC = '${BF_JACK}/include'
|
||||
BF_JACK_INC = '${BF_JACK}/include ${BF_FFMPEG}/include/msvc'
|
||||
BF_JACK_LIB = 'libjack'
|
||||
BF_JACK_LIBPATH = '${BF_JACK}/lib'
|
||||
|
||||
|
|
|
@ -170,7 +170,7 @@ CCFLAGS = ['/nologo', '/Ob1', '/J', '/W0', '/Gd', '/we4013', '/wd4018', '/wd4244
|
|||
CXXFLAGS = ['/EHsc']
|
||||
BGE_CXXFLAGS = ['/O2', '/EHsc', '/GR', '/fp:fast']
|
||||
|
||||
BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr']
|
||||
BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr', '/Od']
|
||||
|
||||
CPPFLAGS = ['-DWIN32', '-D_CONSOLE', '-D_LIB', '-DFTGL_LIBRARY_STATIC', '-D_CRT_SECURE_NO_DEPRECATE']
|
||||
REL_CFLAGS = ['-O2', '-DNDEBUG']
|
||||
|
|
|
@ -258,7 +258,10 @@ def setup_syslibs(lenv):
|
|||
syslibs += Split(lenv['BF_PTHREADS_LIB'])
|
||||
if lenv['WITH_BF_COLLADA']:
|
||||
syslibs.append(lenv['BF_PCRE_LIB'])
|
||||
syslibs += Split(lenv['BF_OPENCOLLADA_LIB'])
|
||||
if lenv['BF_DEBUG']:
|
||||
syslibs += [colladalib+'_d' for colladalib in Split(lenv['BF_OPENCOLLADA_LIB'])]
|
||||
else:
|
||||
syslibs += Split(lenv['BF_OPENCOLLADA_LIB'])
|
||||
syslibs.append(lenv['BF_EXPAT_LIB'])
|
||||
|
||||
if not lenv['WITH_BF_STATICLIBSAMPLERATE']:
|
||||
|
@ -287,6 +290,50 @@ def propose_priorities():
|
|||
print "\t\t",new_priority, v
|
||||
new_priority += 5
|
||||
|
||||
# emits the necessary file objects for creator.c, to be used in creating
|
||||
# the final blender executable
|
||||
def creator(env):
|
||||
sources = ['creator.c']# + Blender.buildinfo(env, "dynamic") + Blender.resources
|
||||
|
||||
incs = ['#/intern/guardedalloc', '#/source/blender/blenlib', '#/source/blender/blenkernel', '#/source/blender/editors/include', '#/source/blender/blenloader', '#/source/blender/imbuf', '#/source/blender/renderconverter', '#/source/blender/render/extern/include', '#/source/blender/windowmanager', '#/source/blender/makesdna', '#/source/blender/makesrna', '#/source/gameengine/BlenderRoutines', '#/extern/glew/include', '#/source/blender/gpu', env['BF_OPENGL_INC']]
|
||||
|
||||
defs = []
|
||||
if env['WITH_BF_QUICKTIME']:
|
||||
incs.append(env['BF_QUICKTIME_INC'])
|
||||
defs.append('WITH_QUICKTIME')
|
||||
|
||||
if env['WITH_BF_BINRELOC']:
|
||||
incs.append('#/extern/binreloc/include')
|
||||
defs.append('WITH_BINRELOC')
|
||||
|
||||
if env['WITH_BF_OPENEXR']:
|
||||
defs.append('WITH_OPENEXR')
|
||||
|
||||
if env['WITH_BF_TIFF']:
|
||||
defs.append('WITH_TIFF')
|
||||
|
||||
if not env['WITH_BF_SDL']:
|
||||
defs.append('DISABLE_SDL')
|
||||
|
||||
if env['WITH_BF_PYTHON']:
|
||||
incs.append('#/source/blender/python')
|
||||
defs.append('WITH_PYTHON')
|
||||
if env['BF_DEBUG']:
|
||||
defs.append('_DEBUG')
|
||||
|
||||
if env['BF_BUILDINFO']:
|
||||
defs.append('BUILD_DATE')
|
||||
defs.append('NAN_BUILDINFO')
|
||||
|
||||
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
|
||||
incs.append(env['BF_PTHREADS_INC'])
|
||||
|
||||
env.Append(CPPDEFINES=defs)
|
||||
env.Append(CPPPATH=incs)
|
||||
obj = [env.Object(root_build_dir+'source/creator/creator/creator', ['#source/creator/creator.c'])]
|
||||
|
||||
return obj
|
||||
|
||||
## TODO: see if this can be made in an emitter
|
||||
def buildinfo(lenv, build_type):
|
||||
"""
|
||||
|
@ -324,7 +371,7 @@ def buildinfo(lenv, build_type):
|
|||
|
||||
lenv.Append (CPPPATH = [root_build_dir+'source/blender/blenkernel'])
|
||||
|
||||
obj = [lenv.Object (root_build_dir+'source/creator/%s_buildinfo'%build_type, [root_build_dir+'source/creator/buildinfo.c'])]
|
||||
obj = [lenv.Object (root_build_dir+'source/creator/%s_buildinfo'%build_type, ['#source/creator/buildinfo.c'])]
|
||||
|
||||
return obj
|
||||
|
||||
|
@ -714,23 +761,19 @@ class BlenderEnvironment(SConsEnvironment):
|
|||
global vcp
|
||||
print bc.HEADER+'Configuring program '+bc.ENDC+bc.OKGREEN+progname+bc.ENDC
|
||||
lenv = self.Clone()
|
||||
lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
|
||||
if lenv['OURPLATFORM'] in ('win32-vc', 'cygwin', 'win64-vc'):
|
||||
lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
|
||||
lenv.Append(LINKFLAGS = ['/FORCE:MULTIPLE'])
|
||||
if lenv['BF_DEBUG']:
|
||||
lenv.Prepend(LINKFLAGS = ['/DEBUG','/PDB:'+progname+'.pdb'])
|
||||
lenv.Prepend(LINKFLAGS = ['/DEBUG','/PDB:'+progname+'.pdb','/NODEFAULTLIB:libcmt'])
|
||||
if lenv['OURPLATFORM']=='linux2':
|
||||
lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
|
||||
if lenv['WITH_BF_PYTHON']:
|
||||
lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
|
||||
if lenv['OURPLATFORM']=='sunos5':
|
||||
lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
|
||||
if lenv['WITH_BF_PYTHON']:
|
||||
lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
|
||||
if lenv['CXX'].endswith('CC'):
|
||||
lenv.Replace(LINK = '$CXX')
|
||||
if lenv['OURPLATFORM']=='darwin':
|
||||
lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
|
||||
if lenv['WITH_BF_PYTHON']:
|
||||
lenv.Append(LINKFLAGS = lenv['BF_PYTHON_LINKFLAGS'])
|
||||
lenv.Append(LINKFLAGS = lenv['BF_OPENGL_LINKFLAGS'])
|
||||
|
|
|
@ -134,7 +134,8 @@ def validate_arguments(args, bc):
|
|||
'BF_RAYOPTIMIZATION_SSE_FLAGS',
|
||||
'BF_NO_ELBEEM',
|
||||
'WITH_BF_CXX_GUARDEDALLOC',
|
||||
'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC'
|
||||
'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC',
|
||||
'BUILDBOT_BRANCH'
|
||||
]
|
||||
|
||||
# Have options here that scons expects to be lists
|
||||
|
@ -501,7 +502,9 @@ def read_opts(env, cfg, args):
|
|||
|
||||
(BoolVariable('WITH_BF_RAYOPTIMIZATION', 'Enable raytracer SSE/SIMD optimization.', False)),
|
||||
('BF_RAYOPTIMIZATION_SSE_FLAGS', 'SSE flags', ''),
|
||||
(BoolVariable('WITH_BF_CXX_GUARDEDALLOC', 'Enable GuardedAlloc for C++ memory allocation tracking.', False))
|
||||
(BoolVariable('WITH_BF_CXX_GUARDEDALLOC', 'Enable GuardedAlloc for C++ memory allocation tracking.', False)),
|
||||
|
||||
('BUILDBOT_BRANCH', 'Buildbot branch name', ''),
|
||||
) # end of opts.AddOptions()
|
||||
|
||||
return localopts
|
||||
|
@ -546,7 +549,7 @@ def buildslave(target=None, source=None, env=None):
|
|||
Builder for buildbot integration. Used by buildslaves of http://builder.blender.org only.
|
||||
"""
|
||||
|
||||
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw'):
|
||||
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw', 'darwin'):
|
||||
extension = '.zip'
|
||||
else:
|
||||
extension = '.tar.bz2'
|
||||
|
@ -560,9 +563,15 @@ def buildslave(target=None, source=None, env=None):
|
|||
platform = 'linux-glibc27-x86_64'
|
||||
elif bitness == '32bit':
|
||||
platform = 'linux-glibc27-i686'
|
||||
if platform == 'darwin':
|
||||
platform = 'OSX-' + env['MACOSX_ARCHITECTURE']
|
||||
|
||||
branch = env['BUILDBOT_BRANCH']
|
||||
|
||||
outdir = os.path.abspath(env['BF_INSTALLDIR'])
|
||||
package_name = 'blender-' + VERSION+'-'+REVISION + '-' + platform
|
||||
if branch != '':
|
||||
package_name = branch + '-' + package_name
|
||||
package_dir = os.path.normpath(outdir + os.sep + '..' + os.sep + package_name)
|
||||
package_archive = os.path.normpath(outdir + os.sep + '..' + os.sep + package_name + extension)
|
||||
|
||||
|
@ -605,9 +614,12 @@ def NSIS_Installer(target=None, source=None, env=None):
|
|||
doneroot = False
|
||||
rootdirconts = []
|
||||
datafiles = ''
|
||||
deldatafiles = ''
|
||||
deldatadirs = ''
|
||||
l = len(bf_installdir)
|
||||
|
||||
for dp,dn,df in os.walk(bf_installdir):
|
||||
# install
|
||||
if not doneroot:
|
||||
for f in df:
|
||||
rootdirconts.append(os.path.join(dp,f))
|
||||
|
@ -621,6 +633,16 @@ def NSIS_Installer(target=None, source=None, env=None):
|
|||
outfile = os.path.join(dp,f)
|
||||
datafiles += ' File '+outfile + "\n"
|
||||
|
||||
# uninstall
|
||||
deldir = dp[l+1:]
|
||||
|
||||
if len(deldir)>0:
|
||||
deldatadirs = "RMDir $INSTDIR\\" + deldir + "\n" + deldatadirs
|
||||
deldatadirs = "RMDir /r $INSTDIR\\" + deldir + "\\__pycache__\n" + deldatadirs
|
||||
|
||||
for f in df:
|
||||
deldatafiles += 'Delete \"$INSTDIR\\' + os.path.join(deldir, f) + "\"\n"
|
||||
|
||||
#### change to suit install dir ####
|
||||
inst_dir = install_base_dir + env['BF_INSTALLDIR']
|
||||
|
||||
|
@ -657,6 +679,8 @@ def NSIS_Installer(target=None, source=None, env=None):
|
|||
ns_cnt = string.replace(ns_cnt, "[DELROOTDIRCONTS]", delrootstring)
|
||||
|
||||
ns_cnt = string.replace(ns_cnt, "[DODATAFILES]", datafiles)
|
||||
ns_cnt = string.replace(ns_cnt, "[DELDATAFILES]", deldatafiles)
|
||||
ns_cnt = string.replace(ns_cnt, "[DELDATADIRS]", deldatadirs)
|
||||
|
||||
tmpnsi = os.path.normpath(install_base_dir+os.sep+env['BF_BUILDDIR']+os.sep+"00.blender_tmp.nsi")
|
||||
new_nsis = open(tmpnsi, 'w')
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.TH "BLENDER" "1" "April 05, 2011" "Blender Blender 2\&.56 (sub 6)"
|
||||
.TH "BLENDER" "1" "June 03, 2011" "Blender Blender 2\&.57 (sub 1)"
|
||||
|
||||
.SH NAME
|
||||
blender \- a 3D modelling and rendering package
|
||||
|
@ -15,7 +15,7 @@ Use Blender to create TV commercials, to make technical visualizations, business
|
|||
http://www.blender.org
|
||||
.SH OPTIONS
|
||||
|
||||
Blender 2.56 (sub 6)
|
||||
Blender 2.57 (sub 1)
|
||||
Usage: blender [args ...] [file] [args ...]
|
||||
.br
|
||||
.SS "Render Options:"
|
||||
|
@ -160,6 +160,12 @@ Force opening without borders
|
|||
Open with lower left corner at <sx>, <sy> and width and height as <w>, <h>
|
||||
.br
|
||||
|
||||
.TP
|
||||
.B \-con or \-\-start\-console
|
||||
.br
|
||||
Start with the console window open (ignored if \-b is set)
|
||||
.br
|
||||
|
||||
.IP
|
||||
|
||||
.SS "Game Engine Specific Options:"
|
||||
|
@ -191,7 +197,7 @@ Turn debugging on
|
|||
.br
|
||||
* Disables mouse grab (to interact with a debugger in some cases)
|
||||
.br
|
||||
* Keeps python sys.stdin rather then setting it to None
|
||||
* Keeps python sys.stdin rather than setting it to None
|
||||
.br
|
||||
|
||||
.TP
|
||||
|
@ -210,12 +216,6 @@ Skip reading the "startup.blend" in the users home directory
|
|||
|
||||
.IP
|
||||
|
||||
.TP
|
||||
.B \-\-env\-system\-config
|
||||
.br
|
||||
Set the BLENDER_SYSTEM_CONFIG environment variable
|
||||
.br
|
||||
|
||||
.TP
|
||||
.B \-\-env\-system\-datafiles
|
||||
.br
|
||||
|
@ -281,7 +281,7 @@ Print this help text and exit
|
|||
.TP
|
||||
.B \-y or \-\-enable\-autoexec
|
||||
.br
|
||||
Enable automatic python script execution (default)
|
||||
Enable automatic python script execution, (default)
|
||||
.br
|
||||
|
||||
.TP
|
||||
|
@ -376,7 +376,6 @@ Arguments are executed in the order they are given. eg
|
|||
.br
|
||||
.SH "ENVIRONMENT VARIABLES"
|
||||
\fIBLENDER_USER_CONFIG\fR Directory for user configuration files.
|
||||
\fIBLENDER_SYSTEM_CONFIG\fR Directory for system wide configuration files.
|
||||
\fIBLENDER_USER_SCRIPTS\fR Directory for user scripts.
|
||||
\fIBLENDER_SYSTEM_SCRIPTS\fR Directory for system wide scripts.
|
||||
\fIBLENDER_USER_DATAFILES\fR Directory for user data files (icons, translations, ..).
|
||||
|
|
|
@ -18,17 +18,21 @@
|
|||
# All rights reserved.
|
||||
#
|
||||
|
||||
set(INC
|
||||
./include
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
binreloc.c
|
||||
|
||||
include/binreloc.h
|
||||
)
|
||||
|
||||
set(INC
|
||||
./include
|
||||
)
|
||||
|
||||
add_definitions(-DENABLE_BINRELOC)
|
||||
|
||||
|
||||
blender_add_lib(extern_binreloc "${SRC}" "${INC}")
|
||||
blender_add_lib(extern_binreloc "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -29,6 +29,10 @@ set(INC
|
|||
src
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp
|
||||
src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp
|
||||
|
@ -145,7 +149,6 @@ set(SRC
|
|||
src/LinearMath/btGeometryUtil.cpp
|
||||
src/LinearMath/btQuickprof.cpp
|
||||
src/LinearMath/btSerializer.cpp
|
||||
|
||||
|
||||
src/Bullet-C-Api.h
|
||||
src/BulletCollision/BroadphaseCollision/btAxisSweep3.h
|
||||
|
@ -330,4 +333,4 @@ if(CMAKE_COMPILER_IS_GNUCXX)
|
|||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
|
||||
endif()
|
||||
|
||||
blender_add_lib(extern_bullet "${SRC}" "${INC}")
|
||||
blender_add_lib(extern_bullet "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -28,8 +28,12 @@ set(INC
|
|||
./include
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
if(UNIX)
|
||||
list(APPEND INC ${X11_X11_INCLUDE_PATH})
|
||||
list(APPEND INC_SYS ${X11_X11_INCLUDE_PATH})
|
||||
endif()
|
||||
|
||||
set(SRC
|
||||
|
@ -42,4 +46,4 @@ set(SRC
|
|||
|
||||
add_definitions(-DGLEW_STATIC)
|
||||
|
||||
blender_add_lib(extern_glew "${SRC}" "${INC}")
|
||||
blender_add_lib(extern_glew "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -1158,11 +1158,13 @@ GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei heigh
|
|||
|
||||
/* ---------------------------------- GLU ---------------------------------- */
|
||||
|
||||
#ifndef GLEW_NO_GLU
|
||||
/* this is where we can safely include GLU */
|
||||
#if defined(__APPLE__) && defined(__MACH__)
|
||||
#include <OpenGL/glu.h>
|
||||
#else
|
||||
#include <GL/glu.h>
|
||||
# if defined(__APPLE__) && defined(__MACH__)
|
||||
# include <OpenGL/glu.h>
|
||||
# else
|
||||
# include <GL/glu.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* ----------------------------- GL_VERSION_1_2 ---------------------------- */
|
||||
|
@ -2445,6 +2447,18 @@ typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
|
|||
|
||||
#endif /* GL_3DFX_texture_compression_FXT1 */
|
||||
|
||||
/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */
|
||||
|
||||
#ifndef GL_AMD_blend_minmax_factor
|
||||
#define GL_AMD_blend_minmax_factor 1
|
||||
|
||||
#define GL_FACTOR_MIN_AMD 0x901C
|
||||
#define GL_FACTOR_MAX_AMD 0x901D
|
||||
|
||||
#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor)
|
||||
|
||||
#endif /* GL_AMD_blend_minmax_factor */
|
||||
|
||||
/* ----------------------- GL_AMD_conservative_depth ----------------------- */
|
||||
|
||||
#ifndef GL_AMD_conservative_depth
|
||||
|
@ -2587,6 +2601,21 @@ typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monito
|
|||
|
||||
#endif /* GL_AMD_performance_monitor */
|
||||
|
||||
/* ------------------------ GL_AMD_sample_positions ------------------------ */
|
||||
|
||||
#ifndef GL_AMD_sample_positions
|
||||
#define GL_AMD_sample_positions 1
|
||||
|
||||
#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val);
|
||||
|
||||
#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD)
|
||||
|
||||
#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions)
|
||||
|
||||
#endif /* GL_AMD_sample_positions */
|
||||
|
||||
/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */
|
||||
|
||||
#ifndef GL_AMD_seamless_cubemap_per_texture
|
||||
|
@ -3262,12 +3291,6 @@ typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum t
|
|||
#ifndef GL_ARB_draw_instanced
|
||||
#define GL_ARB_draw_instanced 1
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
|
||||
|
||||
#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB)
|
||||
#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB)
|
||||
|
||||
#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced)
|
||||
|
||||
#endif /* GL_ARB_draw_instanced */
|
||||
|
@ -3827,8 +3850,12 @@ typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum in
|
|||
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
|
||||
typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor);
|
||||
|
||||
#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB)
|
||||
#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB)
|
||||
#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB)
|
||||
|
||||
#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays)
|
||||
|
@ -6211,8 +6238,8 @@ typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
|
|||
typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
|
||||
typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
|
||||
|
||||
#define glPNTrianglesfATI GLEW_GET_FUN(__glPNTrianglewesfATI)
|
||||
#define glPNTrianglesiATI GLEW_GET_FUN(__glPNTrianglewesiATI)
|
||||
#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI)
|
||||
#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI)
|
||||
|
||||
#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles)
|
||||
|
||||
|
@ -7599,12 +7626,10 @@ typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLen
|
|||
|
||||
typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
|
||||
typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
|
||||
typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
|
||||
|
||||
#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT)
|
||||
#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT)
|
||||
#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT)
|
||||
#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT)
|
||||
|
||||
#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4)
|
||||
|
@ -8450,6 +8475,10 @@ typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level,
|
|||
#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
|
||||
#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
|
||||
#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT)
|
||||
|
||||
#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array)
|
||||
|
||||
#endif /* GL_EXT_texture_array */
|
||||
|
@ -9316,6 +9345,21 @@ typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight);
|
|||
|
||||
#endif /* GL_EXT_vertex_weighting */
|
||||
|
||||
/* ------------------------- GL_EXT_x11_sync_object ------------------------ */
|
||||
|
||||
#ifndef GL_EXT_x11_sync_object
|
||||
#define GL_EXT_x11_sync_object 1
|
||||
|
||||
#define GL_SYNC_X11_FENCE_EXT 0x90E1
|
||||
|
||||
typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
|
||||
|
||||
#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT)
|
||||
|
||||
#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object)
|
||||
|
||||
#endif /* GL_EXT_x11_sync_object */
|
||||
|
||||
/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */
|
||||
|
||||
#ifndef GL_GREMEDY_frame_terminator
|
||||
|
@ -10796,6 +10840,32 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void);
|
|||
|
||||
#endif /* GL_NV_texture_expand_normal */
|
||||
|
||||
/* ----------------------- GL_NV_texture_multisample ----------------------- */
|
||||
|
||||
#ifndef GL_NV_texture_multisample
|
||||
#define GL_NV_texture_multisample 1
|
||||
|
||||
#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
|
||||
#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
|
||||
typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
|
||||
|
||||
#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV)
|
||||
#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV)
|
||||
#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV)
|
||||
#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV)
|
||||
#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV)
|
||||
#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV)
|
||||
|
||||
#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample)
|
||||
|
||||
#endif /* GL_NV_texture_multisample */
|
||||
|
||||
/* ------------------------ GL_NV_texture_rectangle ------------------------ */
|
||||
|
||||
#ifndef GL_NV_texture_rectangle
|
||||
|
@ -11505,6 +11575,71 @@ typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei
|
|||
|
||||
#endif /* GL_NV_vertex_program4 */
|
||||
|
||||
/* -------------------------- GL_NV_video_capture -------------------------- */
|
||||
|
||||
#ifndef GL_NV_video_capture
|
||||
#define GL_NV_video_capture 1
|
||||
|
||||
#define GL_VIDEO_BUFFER_NV 0x9020
|
||||
#define GL_VIDEO_BUFFER_BINDING_NV 0x9021
|
||||
#define GL_FIELD_UPPER_NV 0x9022
|
||||
#define GL_FIELD_LOWER_NV 0x9023
|
||||
#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
|
||||
#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
|
||||
#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
|
||||
#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
|
||||
#define GL_VIDEO_BUFFER_PITCH_NV 0x9028
|
||||
#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
|
||||
#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
|
||||
#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
|
||||
#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
|
||||
#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
|
||||
#define GL_PARTIAL_SUCCESS_NV 0x902E
|
||||
#define GL_SUCCESS_NV 0x902F
|
||||
#define GL_FAILURE_NV 0x9030
|
||||
#define GL_YCBYCR8_422_NV 0x9031
|
||||
#define GL_YCBAYCR8A_4224_NV 0x9032
|
||||
#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
|
||||
#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
|
||||
#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
|
||||
#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
|
||||
#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
|
||||
#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
|
||||
#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
|
||||
#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
|
||||
#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
|
||||
#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
|
||||
typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
|
||||
typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
|
||||
typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
|
||||
typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params);
|
||||
typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params);
|
||||
typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params);
|
||||
typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params);
|
||||
typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time);
|
||||
typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params);
|
||||
typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params);
|
||||
typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params);
|
||||
|
||||
#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV)
|
||||
#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV)
|
||||
#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV)
|
||||
#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV)
|
||||
#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV)
|
||||
#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV)
|
||||
#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV)
|
||||
#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV)
|
||||
#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV)
|
||||
#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV)
|
||||
#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV)
|
||||
#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV)
|
||||
|
||||
#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture)
|
||||
|
||||
#endif /* GL_NV_video_capture */
|
||||
|
||||
/* ------------------------ GL_OES_byte_coordinates ------------------------ */
|
||||
|
||||
#ifndef GL_OES_byte_coordinates
|
||||
|
@ -13052,6 +13187,8 @@ GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupS
|
|||
GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD;
|
||||
GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD;
|
||||
GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD;
|
||||
|
||||
|
@ -13132,9 +13269,6 @@ GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBase
|
|||
GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect;
|
||||
GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB;
|
||||
GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer;
|
||||
GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer;
|
||||
GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer;
|
||||
|
@ -13234,6 +13368,8 @@ GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram;
|
|||
GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax;
|
||||
GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB;
|
||||
GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB;
|
||||
GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange;
|
||||
|
@ -13711,8 +13847,8 @@ GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderCon
|
|||
GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI;
|
||||
GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glPNTrianglewesfATI;
|
||||
GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glPNTrianglewesiATI;
|
||||
GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI;
|
||||
GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI;
|
||||
GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI;
|
||||
|
@ -14093,7 +14229,6 @@ GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT;
|
|||
|
||||
GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT;
|
||||
GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT;
|
||||
GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT;
|
||||
GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT;
|
||||
|
@ -14214,6 +14349,8 @@ GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT;
|
|||
|
||||
GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT;
|
||||
|
@ -14311,6 +14448,8 @@ GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT;
|
|||
GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT;
|
||||
GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY;
|
||||
|
@ -14573,6 +14712,13 @@ GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV;
|
|||
|
||||
GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV;
|
||||
GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV;
|
||||
GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV;
|
||||
GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV;
|
||||
GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV;
|
||||
GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV;
|
||||
GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV;
|
||||
GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV;
|
||||
|
@ -14705,6 +14851,19 @@ GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV;
|
|||
GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV;
|
||||
GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV;
|
||||
GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV;
|
||||
GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV;
|
||||
GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV;
|
||||
GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV;
|
||||
GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV;
|
||||
GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV;
|
||||
GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV;
|
||||
GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV;
|
||||
GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV;
|
||||
GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV;
|
||||
GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV;
|
||||
|
||||
GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES;
|
||||
GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES;
|
||||
GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES;
|
||||
|
@ -14866,12 +15025,14 @@ GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1;
|
|||
GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4;
|
||||
|
@ -15106,6 +15267,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra;
|
|||
GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes;
|
||||
|
@ -15174,6 +15336,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier;
|
|||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2;
|
||||
|
@ -15191,6 +15354,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2;
|
|||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture;
|
||||
GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format;
|
||||
|
|
|
@ -876,6 +876,33 @@ typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
|
|||
|
||||
#endif /* GLX_NV_vertex_array_range */
|
||||
|
||||
/* -------------------------- GLX_NV_video_capture ------------------------- */
|
||||
|
||||
#ifndef GLX_NV_video_capture
|
||||
#define GLX_NV_video_capture 1
|
||||
|
||||
#define GLX_DEVICE_ID_NV 0x20CD
|
||||
#define GLX_UNIQUE_ID_NV 0x20CE
|
||||
#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
|
||||
|
||||
typedef XID GLXVideoCaptureDeviceNV;
|
||||
|
||||
typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
|
||||
typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements);
|
||||
typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device);
|
||||
typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
|
||||
typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device);
|
||||
|
||||
#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV)
|
||||
#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV)
|
||||
#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV)
|
||||
#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV)
|
||||
#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV)
|
||||
|
||||
#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture)
|
||||
|
||||
#endif /* GLX_NV_video_capture */
|
||||
|
||||
/* -------------------------- GLX_NV_video_output -------------------------- */
|
||||
|
||||
#ifndef GLX_NV_video_output
|
||||
|
@ -926,8 +953,7 @@ typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf,
|
|||
|
||||
/* -------------------------- GLX_OML_sync_control ------------------------- */
|
||||
|
||||
#if !defined(GLX_OML_sync_control) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
||||
#include <inttypes.h>
|
||||
#ifndef GLX_OML_sync_control
|
||||
#define GLX_OML_sync_control 1
|
||||
|
||||
typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
|
||||
|
@ -1374,6 +1400,12 @@ extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV;
|
|||
extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV;
|
||||
extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV;
|
||||
|
||||
extern PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV;
|
||||
extern PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV;
|
||||
extern PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV;
|
||||
extern PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV;
|
||||
extern PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV;
|
||||
|
||||
extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV;
|
||||
extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV;
|
||||
extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV;
|
||||
|
@ -1381,13 +1413,11 @@ extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV;
|
|||
extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV;
|
||||
extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV;
|
||||
|
||||
#ifdef GLX_OML_sync_control
|
||||
extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML;
|
||||
extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML;
|
||||
extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML;
|
||||
extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML;
|
||||
extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML;
|
||||
#endif
|
||||
|
||||
extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX;
|
||||
extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX;
|
||||
|
@ -1480,6 +1510,7 @@ GLXEW_EXPORT GLboolean __GLXEW_NV_multisample_coverage;
|
|||
GLXEW_EXPORT GLboolean __GLXEW_NV_present_video;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_video_capture;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_NV_video_output;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method;
|
||||
GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control;
|
||||
|
|
|
@ -141,7 +141,7 @@ typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
|
|||
typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
|
||||
typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
|
||||
typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids);
|
||||
//XXX-blender, added: typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data);
|
||||
typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data);
|
||||
typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
|
||||
|
||||
#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD)
|
||||
|
@ -831,6 +831,37 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO
|
|||
|
||||
#endif /* WGL_I3D_swap_frame_usage */
|
||||
|
||||
/* --------------------------- WGL_NV_DX_interop --------------------------- */
|
||||
|
||||
#ifndef WGL_NV_DX_interop
|
||||
#define WGL_NV_DX_interop 1
|
||||
|
||||
#define WGL_ACCESS_READ_ONLY_NV 0x0000
|
||||
#define WGL_ACCESS_READ_WRITE_NV 0x0001
|
||||
#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002
|
||||
|
||||
typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
|
||||
typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
|
||||
typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
|
||||
typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice);
|
||||
typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access);
|
||||
typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle);
|
||||
typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
|
||||
typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
|
||||
|
||||
#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV)
|
||||
#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV)
|
||||
#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV)
|
||||
#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV)
|
||||
#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV)
|
||||
#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV)
|
||||
#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV)
|
||||
#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV)
|
||||
|
||||
#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop)
|
||||
|
||||
#endif /* WGL_NV_DX_interop */
|
||||
|
||||
/* --------------------------- WGL_NV_copy_image --------------------------- */
|
||||
|
||||
#ifndef WGL_NV_copy_image
|
||||
|
@ -996,6 +1027,32 @@ typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
|
|||
|
||||
#endif /* WGL_NV_vertex_array_range */
|
||||
|
||||
/* -------------------------- WGL_NV_video_capture ------------------------- */
|
||||
|
||||
#ifndef WGL_NV_video_capture
|
||||
#define WGL_NV_video_capture 1
|
||||
|
||||
#define WGL_UNIQUE_ID_NV 0x20CE
|
||||
#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
|
||||
|
||||
DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
|
||||
|
||||
typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
|
||||
typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList);
|
||||
typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
|
||||
typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue);
|
||||
typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
|
||||
|
||||
#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV)
|
||||
#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV)
|
||||
#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV)
|
||||
#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV)
|
||||
#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV)
|
||||
|
||||
#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture)
|
||||
|
||||
#endif /* WGL_NV_video_capture */
|
||||
|
||||
/* -------------------------- WGL_NV_video_output -------------------------- */
|
||||
|
||||
#ifndef WGL_NV_video_output
|
||||
|
@ -1080,7 +1137,7 @@ WGLEW_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContext
|
|||
WGLEW_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD;
|
||||
WGLEW_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD;
|
||||
WGLEW_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD;
|
||||
//XXX-blender, added: WGLEW_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD;
|
||||
WGLEW_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD;
|
||||
WGLEW_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD;
|
||||
|
||||
WGLEW_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB;
|
||||
|
@ -1168,6 +1225,15 @@ WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D;
|
|||
WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D;
|
||||
WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D;
|
||||
|
||||
WGLEW_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV;
|
||||
WGLEW_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV;
|
||||
WGLEW_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV;
|
||||
WGLEW_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV;
|
||||
WGLEW_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV;
|
||||
WGLEW_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV;
|
||||
|
@ -1190,6 +1256,12 @@ WGLEW_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV;
|
|||
WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV;
|
||||
WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV;
|
||||
WGLEW_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV;
|
||||
|
||||
WGLEW_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV;
|
||||
WGLEW_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV;
|
||||
WGLEW_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV;
|
||||
|
@ -1237,6 +1309,7 @@ WGLEW_EXPORT GLboolean __WGLEW_I3D_genlock;
|
|||
WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_DX_interop;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_copy_image;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity;
|
||||
|
@ -1246,6 +1319,7 @@ WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture;
|
|||
WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_swap_group;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_video_capture;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_NV_video_output;
|
||||
WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -28,6 +28,10 @@ set(INC
|
|||
.
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
bio.c
|
||||
cio.c
|
||||
|
@ -73,4 +77,4 @@ set(SRC
|
|||
tgt.h
|
||||
)
|
||||
|
||||
blender_add_lib(extern_openjpeg "${SRC}" "${INC}")
|
||||
blender_add_lib(extern_openjpeg "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -26,6 +26,9 @@
|
|||
|
||||
set(INC
|
||||
.
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
../libopenjpeg
|
||||
)
|
||||
|
||||
|
@ -39,4 +42,4 @@ set(SRC
|
|||
format.h
|
||||
)
|
||||
|
||||
blender_add_lib(extern_redcode "${SRC}" "${INC}")
|
||||
blender_add_lib(extern_redcode "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -28,6 +28,10 @@ set(INC
|
|||
.
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
Alloc.c
|
||||
LzFind.c
|
||||
|
@ -44,4 +48,4 @@ set(SRC
|
|||
Types.h
|
||||
)
|
||||
|
||||
blender_add_lib(extern_lzma "${SRC}" "${INC}")
|
||||
blender_add_lib(extern_lzma "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -28,6 +28,10 @@ set(INC
|
|||
include
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
minilzo/minilzo.c
|
||||
|
||||
|
@ -36,4 +40,4 @@ set(SRC
|
|||
minilzo/minilzo.h
|
||||
)
|
||||
|
||||
blender_add_lib(extern_minilzo "${SRC}" "${INC}")
|
||||
blender_add_lib(extern_minilzo "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -23,12 +23,15 @@
|
|||
set(INC
|
||||
.
|
||||
intern
|
||||
FX SRC
|
||||
${PTHREADS_INC}
|
||||
${LIBSAMPLERATE_INC}
|
||||
FX
|
||||
SRC
|
||||
../ffmpeg
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${PTHREADS_INC}
|
||||
)
|
||||
|
||||
set(SRC
|
||||
FX/AUD_AccumulatorFactory.cpp
|
||||
FX/AUD_BaseIIRFilterReader.cpp
|
||||
|
@ -156,8 +159,9 @@ set(SRC
|
|||
|
||||
if(WITH_CODEC_FFMPEG)
|
||||
add_definitions(-DWITH_FFMPEG)
|
||||
list(APPEND INC ffmpeg ${FFMPEG_INC})
|
||||
set(FFMPEGSRC
|
||||
list(APPEND INC ffmpeg)
|
||||
list(APPEND INC_SYS ${FFMPEG_INC})
|
||||
list(APPEND SRC
|
||||
ffmpeg/AUD_FFMPEGFactory.cpp
|
||||
ffmpeg/AUD_FFMPEGReader.cpp
|
||||
|
||||
|
@ -168,8 +172,9 @@ endif()
|
|||
|
||||
if(WITH_SDL)
|
||||
add_definitions(-DWITH_SDL)
|
||||
list(APPEND INC SDL ${SDL_INCLUDE_DIR})
|
||||
set(SDLSRC
|
||||
list(APPEND INC SDL)
|
||||
list(APPEND INC_SYS ${SDL_INCLUDE_DIR})
|
||||
list(APPEND SRC
|
||||
SDL/AUD_SDLDevice.cpp
|
||||
|
||||
SDL/AUD_SDLDevice.h
|
||||
|
@ -178,18 +183,20 @@ endif()
|
|||
|
||||
if(WITH_OPENAL)
|
||||
add_definitions(-DWITH_OPENAL)
|
||||
list(APPEND INC OpenAL ${OPENAL_INCLUDE_DIR})
|
||||
set(OPENALSRC
|
||||
list(APPEND INC OpenAL)
|
||||
list(APPEND INC_SYS ${OPENAL_INCLUDE_DIR})
|
||||
list(APPEND SRC
|
||||
OpenAL/AUD_OpenALDevice.cpp
|
||||
|
||||
OpenAL/AUD_OpenALDevice.h
|
||||
)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_JACK)
|
||||
add_definitions(-DWITH_JACK)
|
||||
list(APPEND INC jack ${JACK_INC})
|
||||
set(JACKSRC
|
||||
list(APPEND INC jack)
|
||||
list(APPEND INC_SYS ${JACK_INC})
|
||||
list(APPEND SRC
|
||||
jack/AUD_JackDevice.cpp
|
||||
|
||||
jack/AUD_JackDevice.h
|
||||
|
@ -198,8 +205,9 @@ endif()
|
|||
|
||||
if(WITH_CODEC_SNDFILE)
|
||||
add_definitions(-DWITH_SNDFILE)
|
||||
list(APPEND INC sndfile ${SNDFILE_INC})
|
||||
set(SNDFILESRC
|
||||
list(APPEND INC sndfile)
|
||||
list(APPEND INC_SYS ${SNDFILE_INC})
|
||||
list(APPEND SRC
|
||||
sndfile/AUD_SndFileFactory.cpp
|
||||
sndfile/AUD_SndFileReader.cpp
|
||||
|
||||
|
@ -210,7 +218,8 @@ endif()
|
|||
|
||||
if(WITH_SAMPLERATE)
|
||||
add_definitions(-DWITH_SAMPLERATE)
|
||||
set(SRCFILESRC
|
||||
list(APPEND INC_SYS ${LIBSAMPLERATE_INC})
|
||||
list(APPEND SRC
|
||||
SRC/AUD_SRCResampleFactory.cpp
|
||||
SRC/AUD_SRCResampleReader.cpp
|
||||
|
||||
|
@ -221,8 +230,9 @@ endif()
|
|||
|
||||
if(WITH_FFTW3 AND FALSE)
|
||||
add_definitions(-DWITH_FFTW3)
|
||||
list(APPEND INC fftw ${FFTW3_INC})
|
||||
set(FFTW3SRC
|
||||
list(APPEND INC fftw)
|
||||
list(APPEND INC_SYS ${FFTW3_INC})
|
||||
list(APPEND SRC
|
||||
fftw/AUD_BandPassFactory.cpp
|
||||
fftw/AUD_BandPassReader.cpp
|
||||
|
||||
|
@ -232,8 +242,9 @@ if(WITH_FFTW3 AND FALSE)
|
|||
endif()
|
||||
|
||||
if(WITH_PYTHON)
|
||||
list(APPEND INC Python ${PYTHON_INCLUDE_DIRS})
|
||||
set(PYTHONSRC
|
||||
list(APPEND INC Python)
|
||||
list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS})
|
||||
list(APPEND SRC
|
||||
Python/AUD_PyAPI.cpp
|
||||
|
||||
Python/AUD_PyAPI.h
|
||||
|
@ -241,16 +252,4 @@ if(WITH_PYTHON)
|
|||
add_definitions(-DWITH_PYTHON)
|
||||
endif()
|
||||
|
||||
set(SRC
|
||||
${SRC}
|
||||
${FFMPEGSRC}
|
||||
${SNDFILESRC}
|
||||
${SRCFILESRC}
|
||||
${FFTW3SRC}
|
||||
${SDLSRC}
|
||||
${OPENALSRC}
|
||||
${JACKSRC}
|
||||
${PYTHONSRC}
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_audaspace "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_audaspace "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -36,6 +36,10 @@ set(INC
|
|||
../../source/blender/makesdna
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/BOP_BBox.cpp
|
||||
intern/BOP_BSPNode.cpp
|
||||
|
@ -75,4 +79,4 @@ set(SRC
|
|||
intern/BOP_Vertex.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_bop "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_bop "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -32,6 +32,10 @@ set(INC
|
|||
../memutil
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/BSP_CSGMesh.cpp
|
||||
intern/BSP_MeshPrimitives.cpp
|
||||
|
@ -44,4 +48,4 @@ set(SRC
|
|||
intern/BSP_MeshPrimitives.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_bsp "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_bsp "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -29,6 +29,10 @@ set(INC
|
|||
../guardedalloc
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/CTR_List.cpp
|
||||
|
||||
|
@ -40,4 +44,4 @@ set(SRC
|
|||
CTR_UHeap.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_ctr "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_ctr "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -32,6 +32,10 @@ set(INC
|
|||
../moto/include
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/LOD_EdgeCollapser.cpp
|
||||
intern/LOD_ExternNormalEditor.cpp
|
||||
|
@ -57,4 +61,4 @@ set(SRC
|
|||
intern/LOD_QuadricEditor.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_decimate "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_decimate "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -26,6 +26,9 @@
|
|||
|
||||
set(INC
|
||||
extern
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${PNG_INCLUDE_DIR}
|
||||
${ZLIB_INCLUDE_DIRS}
|
||||
)
|
||||
|
@ -88,11 +91,11 @@ set(SRC
|
|||
|
||||
add_definitions(-DNOGUI -DELBEEM_BLENDER=1)
|
||||
if(WINDOWS)
|
||||
add_definitions(-DUSE_MSVC6FIXES)
|
||||
add_definitions(-DUSE_MSVC6FIXES)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENMP)
|
||||
add_definitions(-DPARALLEL=1)
|
||||
add_definitions(-DPARALLEL=1)
|
||||
endif()
|
||||
|
||||
blender_add_lib_nolist(bf_intern_elbeem "${SRC}" "${INC}")
|
||||
blender_add_lib_nolist(bf_intern_elbeem "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -29,6 +29,9 @@ set(INC
|
|||
../string
|
||||
../../source/blender/imbuf
|
||||
../../source/blender/makesdna
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${GLEW_INCLUDE_PATH}
|
||||
)
|
||||
|
||||
|
@ -86,7 +89,42 @@ set(SRC
|
|||
intern/GHOST_WindowManager.h
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
if(WITH_HEADLESS)
|
||||
list(APPEND SRC
|
||||
intern/GHOST_DisplayManagerNULL.h
|
||||
intern/GHOST_SystemNULL.h
|
||||
intern/GHOST_WindowNULL.h
|
||||
)
|
||||
add_definitions(-DWITH_HEADLESS)
|
||||
|
||||
# ack, this is still system dependant
|
||||
if(APPLE)
|
||||
if(WITH_COCOA)
|
||||
list(APPEND SRC
|
||||
intern/GHOST_SystemPathsCocoa.mm
|
||||
intern/GHOST_SystemPathsCocoa.h
|
||||
)
|
||||
else()
|
||||
list(APPEND SRC
|
||||
intern/GHOST_SystemPathsCarbon.cpp
|
||||
intern/GHOST_SystemPathsCarbon.h
|
||||
)
|
||||
endif()
|
||||
elseif(UNIX)
|
||||
list(APPEND SRC
|
||||
intern/GHOST_SystemPathsX11.cpp
|
||||
intern/GHOST_SystemPathsX11.h
|
||||
)
|
||||
elseif(WIN32)
|
||||
|
||||
list(APPEND SRC
|
||||
intern/GHOST_SystemPathsWin32.cpp
|
||||
|
||||
intern/GHOST_SystemPathsWin32.h
|
||||
)
|
||||
endif()
|
||||
|
||||
elseif(APPLE)
|
||||
if(WITH_COCOA)
|
||||
list(APPEND SRC
|
||||
intern/GHOST_DisplayManagerCocoa.mm
|
||||
|
@ -123,7 +161,7 @@ elseif(UNIX)
|
|||
add_definitions(-DWITH_X11_XINPUT)
|
||||
endif()
|
||||
|
||||
list(APPEND INC ${X11_X11_INCLUDE_PATH})
|
||||
list(APPEND INC_SYS ${X11_X11_INCLUDE_PATH})
|
||||
|
||||
list(APPEND SRC
|
||||
intern/GHOST_DisplayManagerX11.cpp
|
||||
|
@ -143,7 +181,7 @@ elseif(UNIX)
|
|||
|
||||
if(X11_XF86keysym_INCLUDE_PATH)
|
||||
add_definitions(-DWITH_XF86KEYSYM)
|
||||
list(APPEND INC ${X11_XF86keysym_INCLUDE_PATH})
|
||||
list(APPEND INC_SYS ${X11_XF86keysym_INCLUDE_PATH})
|
||||
endif()
|
||||
|
||||
elseif(WIN32)
|
||||
|
@ -151,7 +189,7 @@ elseif(WIN32)
|
|||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
|
||||
endif()
|
||||
|
||||
list(APPEND INC ${WINTAB_INC})
|
||||
list(APPEND INC_SYS ${WINTAB_INC})
|
||||
|
||||
list(APPEND SRC
|
||||
intern/GHOST_DisplayManagerWin32.cpp
|
||||
|
@ -169,5 +207,5 @@ elseif(WIN32)
|
|||
)
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_intern_ghost "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_ghost "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* $Id: GHOST_DisplayManagerNULL.h 37194 2011-06-05 00:10:20Z gsrb3d $
|
||||
* ***** 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* Contributor(s): Campbell Barton
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/** \file ghost/intern/GHOST_DisplayManagerNULL.h
|
||||
* \ingroup GHOST
|
||||
* Declaration of GHOST_DisplayManagerNULL class.
|
||||
*/
|
||||
|
||||
#ifndef _GHOST_DISPLAY_MANAGER_NULL_H_
|
||||
#define _GHOST_DISPLAY_MANAGER_NULL_H_
|
||||
|
||||
#include "GHOST_DisplayManager.h"
|
||||
#include "GHOST_SystemNULL.h"
|
||||
|
||||
class GHOST_SystemNULL;
|
||||
|
||||
class GHOST_DisplayManagerNULL : public GHOST_DisplayManager
|
||||
{
|
||||
public:
|
||||
GHOST_DisplayManagerNULL( GHOST_SystemNULL *system ) : GHOST_DisplayManager(), m_system(system) { /* nop */ }
|
||||
GHOST_TSuccess getNumDisplays( GHOST_TUns8& numDisplays ) const { return GHOST_kFailure; }
|
||||
GHOST_TSuccess getNumDisplaySettings( GHOST_TUns8 display, GHOST_TInt32& numSettings ) const{ return GHOST_kFailure; }
|
||||
GHOST_TSuccess getDisplaySetting( GHOST_TUns8 display, GHOST_TInt32 index, GHOST_DisplaySetting& setting ) const { return GHOST_kFailure; }
|
||||
GHOST_TSuccess getCurrentDisplaySetting( GHOST_TUns8 display, GHOST_DisplaySetting& setting ) const { return getDisplaySetting(display,GHOST_TInt32(0),setting); }
|
||||
GHOST_TSuccess setCurrentDisplaySetting( GHOST_TUns8 display, const GHOST_DisplaySetting& setting ){ return GHOST_kSuccess; }
|
||||
|
||||
private :
|
||||
GHOST_SystemNULL * m_system;
|
||||
};
|
||||
|
||||
#endif /* _GHOST_DISPLAY_MANAGER_NULL_H_ */
|
|
@ -41,7 +41,9 @@
|
|||
|
||||
#include "GHOST_ISystem.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef WITH_HEADLESS
|
||||
# include "GHOST_SystemNULL.h"
|
||||
#elif defined(WIN32)
|
||||
# include "GHOST_SystemWin32.h"
|
||||
#else
|
||||
# ifdef __APPLE__
|
||||
|
@ -63,7 +65,9 @@ GHOST_TSuccess GHOST_ISystem::createSystem()
|
|||
{
|
||||
GHOST_TSuccess success;
|
||||
if (!m_system) {
|
||||
#ifdef WIN32
|
||||
#ifdef WITH_HEADLESS
|
||||
m_system = new GHOST_SystemNULL();
|
||||
#elif defined(WIN32)
|
||||
m_system = new GHOST_SystemWin32 ();
|
||||
#else
|
||||
# ifdef __APPLE__
|
||||
|
|
|
@ -81,7 +81,9 @@ GHOST_NDOFManager::deviceOpen(GHOST_IWindow* window,
|
|||
#if 0
|
||||
printf("%i client \n", Pid);
|
||||
#endif
|
||||
#if defined(_WIN32) || defined(__APPLE__)
|
||||
#if defined(WITH_HEADLESS)
|
||||
/* do nothing */
|
||||
#elif defined(_WIN32) || defined(__APPLE__)
|
||||
m_DeviceHandle = ndofDeviceOpen((void *)¤tNdofValues);
|
||||
#else
|
||||
GHOST_SystemX11 *sys;
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* $Id: GHOST_SystemNULL.h 37194 2011-06-05 00:10:20Z gsrb3d $
|
||||
* ***** 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* Contributor(s): Campbell Barton
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/** \file ghost/intern/GHOST_SystemNULL.h
|
||||
* \ingroup GHOST
|
||||
* Declaration of GHOST_SystemNULL class.
|
||||
*/
|
||||
|
||||
#ifndef _GHOST_SYSTEM_NULL_H_
|
||||
#define _GHOST_SYSTEM_NULL_H_
|
||||
|
||||
#include "GHOST_System.h"
|
||||
#include "../GHOST_Types.h"
|
||||
#include "GHOST_DisplayManagerNULL.h"
|
||||
#include "GHOST_WindowNULL.h"
|
||||
|
||||
class GHOST_WindowNULL;
|
||||
|
||||
class GHOST_SystemNULL : public GHOST_System {
|
||||
public:
|
||||
|
||||
GHOST_SystemNULL( ) : GHOST_System() { /* nop */ }
|
||||
~GHOST_SystemNULL() { /* nop */ }
|
||||
bool processEvents(bool waitForEvent) { return false; }
|
||||
int toggleConsole(int action) { return 0; }
|
||||
GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys& keys) const { return GHOST_kSuccess; }
|
||||
GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const { return GHOST_kSuccess; }
|
||||
GHOST_TUns8 *getClipboard(bool selection) const { return NULL; }
|
||||
void putClipboard(GHOST_TInt8 *buffer, bool selection) const { /* nop */ }
|
||||
GHOST_TUns64 getMilliSeconds( ) const { return 0; }
|
||||
GHOST_TUns8 getNumDisplays( ) const { return GHOST_TUns8(1); }
|
||||
GHOST_TSuccess getCursorPosition( GHOST_TInt32& x, GHOST_TInt32& y ) const { return GHOST_kFailure; }
|
||||
GHOST_TSuccess setCursorPosition( GHOST_TInt32 x, GHOST_TInt32 y ) { return GHOST_kFailure; }
|
||||
void getMainDisplayDimensions( GHOST_TUns32& width, GHOST_TUns32& height ) const { /* nop */ }
|
||||
|
||||
GHOST_TSuccess init() {
|
||||
GHOST_TSuccess success = GHOST_System::init();
|
||||
|
||||
if (success) {
|
||||
m_displayManager = new GHOST_DisplayManagerNULL(this);
|
||||
|
||||
if (m_displayManager) {
|
||||
return GHOST_kSuccess;
|
||||
}
|
||||
}
|
||||
|
||||
return GHOST_kFailure;
|
||||
}
|
||||
|
||||
GHOST_IWindow* createWindow(
|
||||
const STR_String& title,
|
||||
GHOST_TInt32 left,
|
||||
GHOST_TInt32 top,
|
||||
GHOST_TUns32 width,
|
||||
GHOST_TUns32 height,
|
||||
GHOST_TWindowState state,
|
||||
GHOST_TDrawingContextType type,
|
||||
bool stereoVisual,
|
||||
const GHOST_TUns16 numOfAASamples,
|
||||
const GHOST_TEmbedderWindowID parentWindow
|
||||
) {
|
||||
return new GHOST_WindowNULL (this, title, left, top, width, height, state, parentWindow, type, stereoVisual, 1);
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* $Id: GHOST_WindowNULL.h 37194 2011-06-05 00:10:20Z gsrb3d $
|
||||
* ***** 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* Contributor(s): Campbell Barton
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/** \file ghost/intern/GHOST_WindowNULL.h
|
||||
* \ingroup GHOST
|
||||
* Declaration of GHOST_WindowNULL class.
|
||||
*/
|
||||
|
||||
#ifndef _GHOST_WINDOWNULL_H_
|
||||
#define _GHOST_WINDOWNULL_H_
|
||||
|
||||
#include "GHOST_Window.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
class STR_String;
|
||||
class GHOST_SystemNULL;
|
||||
|
||||
class GHOST_WindowNULL : public GHOST_Window
|
||||
{
|
||||
public:
|
||||
const GHOST_TabletData* GetTabletData() { return NULL; }
|
||||
|
||||
GHOST_WindowNULL(
|
||||
GHOST_SystemNULL *system,
|
||||
const STR_String& title,
|
||||
GHOST_TInt32 left,
|
||||
GHOST_TInt32 top,
|
||||
GHOST_TUns32 width,
|
||||
GHOST_TUns32 height,
|
||||
GHOST_TWindowState state,
|
||||
const GHOST_TEmbedderWindowID parentWindow,
|
||||
GHOST_TDrawingContextType type,
|
||||
const bool stereoVisual,
|
||||
const GHOST_TUns16 numOfAASamples
|
||||
) :
|
||||
GHOST_Window(title,left,top,width,height,state,type,stereoVisual,numOfAASamples),
|
||||
m_system (system)
|
||||
{
|
||||
setTitle(title);
|
||||
}
|
||||
|
||||
protected:
|
||||
GHOST_TSuccess installDrawingContext( GHOST_TDrawingContextType type ){ return GHOST_kSuccess; }
|
||||
GHOST_TSuccess removeDrawingContext( ){ return GHOST_kSuccess; }
|
||||
GHOST_TSuccess setWindowCursorGrab( GHOST_TGrabCursorMode mode ){ return GHOST_kSuccess; }
|
||||
GHOST_TSuccess setWindowCursorShape( GHOST_TStandardCursor shape ){ return GHOST_kSuccess; }
|
||||
GHOST_TSuccess setWindowCustomCursorShape( GHOST_TUns8 bitmap[16][2], GHOST_TUns8 mask[16][2], int hotX, int hotY ) { return GHOST_kSuccess; }
|
||||
GHOST_TSuccess setWindowCustomCursorShape( GHOST_TUns8 *bitmap, GHOST_TUns8 *mask, int sizex, int sizey, int hotX, int hotY, int fg_color, int bg_color ){ return GHOST_kSuccess; }
|
||||
|
||||
bool getValid( ) const { return true; }
|
||||
void setTitle( const STR_String& title ){ /* nothing */ }
|
||||
void getTitle( STR_String& title ) const { title= "untitled"; }
|
||||
void getWindowBounds( GHOST_Rect& bounds ) const { getClientBounds(bounds); }
|
||||
void getClientBounds( GHOST_Rect& bounds ) const { /* nothing */ }
|
||||
GHOST_TSuccess setClientWidth( GHOST_TUns32 width ){ return GHOST_kFailure; }
|
||||
GHOST_TSuccess setClientHeight( GHOST_TUns32 height ){ return GHOST_kFailure; }
|
||||
GHOST_TSuccess setClientSize( GHOST_TUns32 width, GHOST_TUns32 height ){ return GHOST_kFailure; }
|
||||
void screenToClient( GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY ) const { outX = inX; outY = inY; }
|
||||
void clientToScreen( GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY ) const { outX = inX; outY = inY; }
|
||||
GHOST_TSuccess swapBuffers( ){ return GHOST_kFailure; }
|
||||
GHOST_TSuccess activateDrawingContext( ){ return GHOST_kFailure; }
|
||||
~GHOST_WindowNULL( ){ /* nothing */ }
|
||||
GHOST_TSuccess setWindowCursorVisibility( bool visible ){ return GHOST_kSuccess; }
|
||||
GHOST_TSuccess setState(GHOST_TWindowState state) { return GHOST_kSuccess; }
|
||||
GHOST_TWindowState getState() const { return GHOST_kWindowStateNormal; }
|
||||
GHOST_TSuccess invalidate() { return GHOST_kSuccess; }
|
||||
GHOST_TSuccess setOrder(GHOST_TWindowOrder order) { return GHOST_kSuccess; }
|
||||
|
||||
|
||||
private :
|
||||
GHOST_SystemNULL * m_system;
|
||||
};
|
||||
|
||||
|
||||
#endif // _GHOST_WINDOWNULL_H_
|
|
@ -24,7 +24,13 @@
|
|||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
set(INC .)
|
||||
set(INC
|
||||
.
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
./intern/mallocn.c
|
||||
|
@ -41,12 +47,12 @@ if(WIN32 AND NOT UNIX)
|
|||
)
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_intern_guardedalloc "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_guardedalloc "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
||||
# Override C++ alloc, optional.
|
||||
if(WITH_CXX_GUARDEDALLOC)
|
||||
set(SRC
|
||||
cpp/mallocn.cpp
|
||||
)
|
||||
blender_add_lib(bf_intern_guardedalloc_cpp "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_guardedalloc_cpp "${SRC}" "${INC}" "${INC_SYS}")
|
||||
endif()
|
||||
|
|
|
@ -30,6 +30,10 @@ set(INC
|
|||
../moto/include
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/IK_QJacobian.cpp
|
||||
intern/IK_QJacobianSolver.cpp
|
||||
|
@ -70,4 +74,4 @@ set(SRC
|
|||
intern/TNT/version.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_ik "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_ik "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -28,6 +28,10 @@ set(INC
|
|||
../../extern/Eigen2
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
Armature.cpp
|
||||
Cache.cpp
|
||||
|
@ -222,4 +226,4 @@ set(SRC
|
|||
../../extern/Eigen2/Eigen/src/Sparse/UmfPackSupport.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_itasc "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_itasc "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -29,6 +29,10 @@ set(INC
|
|||
..
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/MEM_CacheLimiterC-Api.cpp
|
||||
intern/MEM_RefCountedC-Api.cpp
|
||||
|
@ -43,4 +47,4 @@ set(SRC
|
|||
MEM_SmartPtr.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_memutil "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_memutil "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -28,11 +28,15 @@ set(INC
|
|||
.
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
mikktspace.c
|
||||
|
||||
mikktspace.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_mikktspace "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_mikktspace "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
||||
|
|
|
@ -28,6 +28,10 @@ set(INC
|
|||
include
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/MT_Assert.cpp
|
||||
intern/MT_CmMatrix4x4.cpp
|
||||
|
@ -67,4 +71,4 @@ set(SRC
|
|||
include/NM_Scalar.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_moto "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_moto "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -36,6 +36,10 @@ set(INC
|
|||
superlu
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/opennl.c
|
||||
superlu/colamd.c
|
||||
|
@ -79,4 +83,4 @@ set(SRC
|
|||
superlu/util.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_opennl "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_opennl "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -28,6 +28,9 @@ set(INC
|
|||
intern
|
||||
../memutil
|
||||
../../extern/bullet2/src
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${PNG_INCLUDE_DIR}
|
||||
${ZLIB_INCLUDE_DIRS}
|
||||
)
|
||||
|
@ -89,5 +92,5 @@ if(WITH_FFTW3)
|
|||
list(APPEND INC ${FFTW3_INC})
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_intern_smoke "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_smoke "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
||||
|
|
|
@ -28,6 +28,10 @@ set(INC
|
|||
.
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/STR_String.cpp
|
||||
|
||||
|
@ -35,4 +39,4 @@ set(SRC
|
|||
STR_String.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_intern_string "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_intern_string "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -59,6 +59,7 @@ def load_image(imagepath,
|
|||
:rtype: :class:`Image`
|
||||
"""
|
||||
import os
|
||||
import bpy
|
||||
|
||||
# TODO: recursive
|
||||
|
||||
|
@ -88,7 +89,7 @@ def load_image(imagepath,
|
|||
|
||||
for filepath_test in variants:
|
||||
if ncase_cmp:
|
||||
ncase_variants = filepath_test, bpy.path.resolve_ncase(filepath)
|
||||
ncase_variants = filepath_test, bpy.path.resolve_ncase(filepath_test)
|
||||
else:
|
||||
ncase_variants = (filepath_test, )
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ __all__ = (
|
|||
"path_reference",
|
||||
"path_reference_copy",
|
||||
"path_reference_mode",
|
||||
"unique_name"
|
||||
)
|
||||
|
||||
import bpy
|
||||
|
@ -298,3 +299,43 @@ def path_reference_copy(copy_set, report=print):
|
|||
os.makedirs(dir_to)
|
||||
|
||||
shutil.copy(file_src, file_dst)
|
||||
|
||||
|
||||
def unique_name(key, name, name_dict, name_max=-1, clean_func=None):
|
||||
"""
|
||||
Helper function for storing unique names which may have special characters
|
||||
stripped and restricted to a maximum length.
|
||||
|
||||
:arg key: unique item this name belongs to, name_dict[key] will be reused
|
||||
when available.
|
||||
This can be the object, mesh, material, etc instance its self.
|
||||
:type key: any hashable object assosiated with the *name*.
|
||||
:arg name: The name used to create a unique value in *name_dict*.
|
||||
:type name: string
|
||||
:arg name_dict: This is used to cache namespace to ensure no collisions
|
||||
occur, this should be an empty dict initially and only modified by this
|
||||
function.
|
||||
:type name_dict: dict
|
||||
:arg clean_func: Function to call on *name* before creating a unique value.
|
||||
:type clean_func: function
|
||||
"""
|
||||
name_new = name_dict.get(key)
|
||||
if name_new is None:
|
||||
count = 1
|
||||
name_dict_values = name_dict.values()
|
||||
name_new = name_new_orig = name if clean_func is None else clean_func(name)
|
||||
|
||||
if name_max == -1:
|
||||
while name_new in name_dict_values:
|
||||
name_new = "%s.%03d" % (name_new_orig, count)
|
||||
count += 1
|
||||
else:
|
||||
name_new = name_new[:name_max]
|
||||
while name_new in name_dict_values:
|
||||
count_str = "%03d" % count
|
||||
name_new = "%.*s.%s" % (name_max - (len(count_str) + 1), name_new_orig, count_str)
|
||||
count += 1
|
||||
|
||||
name_dict[key] = name_new
|
||||
|
||||
return name_new
|
||||
|
|
|
@ -37,6 +37,11 @@ def is_dict(obj):
|
|||
return hasattr(obj, 'keys') and hasattr(getattr(obj, 'keys'), '__call__')
|
||||
|
||||
|
||||
def is_struct_seq(obj):
|
||||
"""Returns whether obj is a structured sequence subclass: sys.float_info"""
|
||||
return isinstance(obj, tuple) and hasattr(obj, 'n_fields')
|
||||
|
||||
|
||||
def complete_names(word, namespace):
|
||||
"""Complete variable names or attributes
|
||||
|
||||
|
@ -174,7 +179,7 @@ def complete(word, namespace, private=True):
|
|||
if type(obj) in (bool, float, int, str):
|
||||
return []
|
||||
# an extra char '[', '(' or '.' will be added
|
||||
if hasattr(obj, '__getitem__'):
|
||||
if hasattr(obj, '__getitem__') and not is_struct_seq(obj):
|
||||
# list or dictionary
|
||||
matches = complete_indices(word, namespace, obj)
|
||||
elif hasattr(obj, '__call__'):
|
||||
|
|
|
@ -126,7 +126,14 @@ def expand(line, cursor, namespace, private=True):
|
|||
if len(matches) == 1:
|
||||
scrollback = ''
|
||||
else:
|
||||
scrollback = ' '.join([m.split('.')[-1] for m in matches])
|
||||
# causes blender bug [#27495] since string keys may contain '.'
|
||||
# scrollback = ' '.join([m.split('.')[-1] for m in matches])
|
||||
scrollback = ' '.join(
|
||||
[m[len(word):]
|
||||
if (word and m.startswith(word))
|
||||
else m.split('.')[-1]
|
||||
for m in matches])
|
||||
|
||||
no_calltip = True
|
||||
prefix = os.path.commonprefix(matches)[len(word):]
|
||||
if prefix:
|
||||
|
|
|
@ -80,7 +80,7 @@ def get_console(console_id):
|
|||
if console_data:
|
||||
console, stdout, stderr = console_data
|
||||
|
||||
# XXX, bug in python 3.1.2 ? (worked in 3.1.1)
|
||||
# XXX, bug in python 3.1.2, 3.2 ? (worked in 3.1.1)
|
||||
# seems there is no way to clear StringIO objects for writing, have to make new ones each time.
|
||||
import io
|
||||
stdout = io.StringIO()
|
||||
|
|
|
@ -326,7 +326,7 @@ class AddPresetOperator(AddPresetBase, bpy.types.Operator):
|
|||
|
||||
ret = []
|
||||
for prop_id, prop in operator_rna.properties.items():
|
||||
if (not prop.is_hidden) and prop_id not in properties_blacklist:
|
||||
if (not (prop.is_hidden or prop.is_skip_save)) and prop_id not in properties_blacklist:
|
||||
ret.append("op.%s" % prop_id)
|
||||
|
||||
return ret
|
||||
|
|
|
@ -106,7 +106,7 @@ class WM_OT_context_set_boolean(bpy.types.Operator):
|
|||
'''Set a context value.'''
|
||||
bl_idname = "wm.context_set_boolean"
|
||||
bl_label = "Context Set Boolean"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = BoolProperty(name="Value",
|
||||
|
@ -119,7 +119,7 @@ class WM_OT_context_set_int(bpy.types.Operator): # same as enum
|
|||
'''Set a context value.'''
|
||||
bl_idname = "wm.context_set_int"
|
||||
bl_label = "Context Set"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = IntProperty(name="Value", description="Assign value", default=0)
|
||||
|
@ -132,7 +132,7 @@ class WM_OT_context_scale_int(bpy.types.Operator):
|
|||
'''Scale an int context value.'''
|
||||
bl_idname = "wm.context_scale_int"
|
||||
bl_label = "Context Set"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = FloatProperty(name="Value", description="Assign value", default=1.0)
|
||||
|
@ -168,7 +168,7 @@ class WM_OT_context_set_float(bpy.types.Operator): # same as enum
|
|||
'''Set a context value.'''
|
||||
bl_idname = "wm.context_set_float"
|
||||
bl_label = "Context Set Float"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = FloatProperty(name="Value",
|
||||
|
@ -182,7 +182,7 @@ class WM_OT_context_set_string(bpy.types.Operator): # same as enum
|
|||
'''Set a context value.'''
|
||||
bl_idname = "wm.context_set_string"
|
||||
bl_label = "Context Set String"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = StringProperty(name="Value",
|
||||
|
@ -195,7 +195,7 @@ class WM_OT_context_set_enum(bpy.types.Operator):
|
|||
'''Set a context value.'''
|
||||
bl_idname = "wm.context_set_enum"
|
||||
bl_label = "Context Set Enum"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = StringProperty(name="Value",
|
||||
|
@ -209,7 +209,7 @@ class WM_OT_context_set_value(bpy.types.Operator):
|
|||
'''Set a context value.'''
|
||||
bl_idname = "wm.context_set_value"
|
||||
bl_label = "Context Set Value"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = StringProperty(name="Value",
|
||||
|
@ -227,7 +227,7 @@ class WM_OT_context_toggle(bpy.types.Operator):
|
|||
'''Toggle a context value.'''
|
||||
bl_idname = "wm.context_toggle"
|
||||
bl_label = "Context Toggle"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
|
||||
|
@ -246,7 +246,7 @@ class WM_OT_context_toggle_enum(bpy.types.Operator):
|
|||
'''Toggle a context value.'''
|
||||
bl_idname = "wm.context_toggle_enum"
|
||||
bl_label = "Context Toggle Values"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value_1 = StringProperty(name="Value", \
|
||||
|
@ -273,7 +273,7 @@ class WM_OT_context_cycle_int(bpy.types.Operator):
|
|||
'''vertex keys, groups' etc.'''
|
||||
bl_idname = "wm.context_cycle_int"
|
||||
bl_label = "Context Int Cycle"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
reverse = rna_reverse_prop
|
||||
|
@ -307,7 +307,7 @@ class WM_OT_context_cycle_enum(bpy.types.Operator):
|
|||
'''Toggle a context value.'''
|
||||
bl_idname = "wm.context_cycle_enum"
|
||||
bl_label = "Context Enum Cycle"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
reverse = rna_reverse_prop
|
||||
|
@ -360,7 +360,7 @@ class WM_OT_context_cycle_array(bpy.types.Operator):
|
|||
Useful for cycling the active mesh edit mode.'''
|
||||
bl_idname = "wm.context_cycle_array"
|
||||
bl_label = "Context Array Cycle"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
reverse = rna_reverse_prop
|
||||
|
@ -406,7 +406,7 @@ class WM_MT_context_menu_enum(bpy.types.Menu):
|
|||
class WM_OT_context_menu_enum(bpy.types.Operator):
|
||||
bl_idname = "wm.context_menu_enum"
|
||||
bl_label = "Context Enum Menu"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
data_path = rna_path_prop
|
||||
|
||||
def execute(self, context):
|
||||
|
@ -420,7 +420,7 @@ class WM_OT_context_set_id(bpy.types.Operator):
|
|||
'''Toggle a context value.'''
|
||||
bl_idname = "wm.context_set_id"
|
||||
bl_label = "Set Library ID"
|
||||
bl_options = {'UNDO'}
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
data_path = rna_path_prop
|
||||
value = StringProperty(name="Value",
|
||||
|
@ -462,6 +462,7 @@ class WM_OT_context_modal_mouse(bpy.types.Operator):
|
|||
'''Adjust arbitrary values with mouse input'''
|
||||
bl_idname = "wm.context_modal_mouse"
|
||||
bl_label = "Context Modal Mouse"
|
||||
bl_options = {'INTERNAL'}
|
||||
|
||||
data_path_iter = StringProperty(description="The data path relative to the context, must point to an iterable.")
|
||||
data_path_item = StringProperty(description="The data path from each iterable to the value (int or float)")
|
||||
|
|
|
@ -116,6 +116,10 @@ class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel):
|
|||
col.label(text="Textures:")
|
||||
col.prop(curve, "use_uv_as_generated")
|
||||
col.prop(curve, "use_auto_texspace")
|
||||
|
||||
row = layout.row()
|
||||
row.column().prop(curve, "texspace_location")
|
||||
row.column().prop(curve, "texspace_size")
|
||||
|
||||
|
||||
class DATA_PT_geometry_curve(CurveButtonsPanel, bpy.types.Panel):
|
||||
|
|
|
@ -99,8 +99,9 @@ class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel):
|
|||
split.prop(mesh, "show_double_sided")
|
||||
|
||||
|
||||
class DATA_PT_settings(MeshButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Settings"
|
||||
class DATA_PT_texture_space(MeshButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Texture Space"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -109,8 +110,13 @@ class DATA_PT_settings(MeshButtonsPanel, bpy.types.Panel):
|
|||
mesh = context.mesh
|
||||
|
||||
layout.prop(mesh, "texture_mesh")
|
||||
layout.prop(mesh, "use_auto_texspace")
|
||||
|
||||
layout.separator()
|
||||
|
||||
layout.prop(mesh, "use_auto_texspace")
|
||||
row = layout.row()
|
||||
row.column().prop(mesh, "texspace_location", text="Location")
|
||||
row.column().prop(mesh, "texspace_size", text="Size")
|
||||
|
||||
class DATA_PT_vertex_groups(MeshButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Vertex Groups"
|
||||
|
|
|
@ -70,6 +70,10 @@ class DATA_PT_metaball(DataButtonsPanel, bpy.types.Panel):
|
|||
|
||||
layout.label(text="Update:")
|
||||
layout.prop(mball, "update_method", expand=True)
|
||||
|
||||
row = layout.row()
|
||||
row.column().prop(mball, "texspace_location")
|
||||
row.column().prop(mball, "texspace_size")
|
||||
|
||||
|
||||
class DATA_PT_metaball_element(DataButtonsPanel, bpy.types.Panel):
|
||||
|
|
|
@ -483,11 +483,10 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel):
|
|||
col.label(text="Mode:")
|
||||
col.prop(md, "wrap_method", text="")
|
||||
|
||||
split = layout.split(percentage=0.25)
|
||||
|
||||
col = split.column()
|
||||
|
||||
if md.wrap_method == 'PROJECT':
|
||||
split = layout.split(percentage=0.25)
|
||||
|
||||
col = split.column()
|
||||
col.label(text="Axis:")
|
||||
col.prop(md, "use_project_x")
|
||||
col.prop(md, "use_project_y")
|
||||
|
@ -499,7 +498,6 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel):
|
|||
col.prop(md, "use_positive_direction")
|
||||
|
||||
col = split.column()
|
||||
|
||||
col.label(text="Cull Faces:")
|
||||
col.prop(md, "cull_face", expand=True)
|
||||
|
||||
|
|
|
@ -655,17 +655,19 @@ class ConstraintButtonsPanel():
|
|||
row = col.row()
|
||||
row.label(text="Source to Destination Mapping:")
|
||||
|
||||
# note: chr(187) is the ASCII arrow ( >> ). Blender Text Editor can't
|
||||
# open it. Thus we are using the hardcoded value instead.
|
||||
row = col.row()
|
||||
row.prop(con, "map_to_x_from", expand=False, text="")
|
||||
row.label(text=" -> X")
|
||||
row.label(text=" %s X" % chr(187))
|
||||
|
||||
row = col.row()
|
||||
row.prop(con, "map_to_y_from", expand=False, text="")
|
||||
row.label(text=" -> Y")
|
||||
row.label(text=" %s Y" % chr(187))
|
||||
|
||||
row = col.row()
|
||||
row.prop(con, "map_to_z_from", expand=False, text="")
|
||||
row.label(text=" -> Z")
|
||||
row.label(text=" %s Z" % chr(187))
|
||||
|
||||
split = layout.split()
|
||||
|
||||
|
|
|
@ -172,8 +172,130 @@ class RENDER_PT_layers(RenderButtonsPanel, bpy.types.Panel):
|
|||
row.prop(rl, "exclude_refraction", text="")
|
||||
|
||||
|
||||
class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Dimensions"
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
scene = context.scene
|
||||
rd = scene.render
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.menu("RENDER_MT_presets", text=bpy.types.RENDER_MT_presets.bl_label)
|
||||
row.operator("render.preset_add", text="", icon="ZOOMIN")
|
||||
row.operator("render.preset_add", text="", icon="ZOOMOUT").remove_active = True
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
sub = col.column(align=True)
|
||||
sub.label(text="Resolution:")
|
||||
sub.prop(rd, "resolution_x", text="X")
|
||||
sub.prop(rd, "resolution_y", text="Y")
|
||||
sub.prop(rd, "resolution_percentage", text="")
|
||||
|
||||
sub.label(text="Aspect Ratio:")
|
||||
sub.prop(rd, "pixel_aspect_x", text="X")
|
||||
sub.prop(rd, "pixel_aspect_y", text="Y")
|
||||
|
||||
row = col.row()
|
||||
row.prop(rd, "use_border", text="Border")
|
||||
sub = row.row()
|
||||
sub.active = rd.use_border
|
||||
sub.prop(rd, "use_crop_to_border", text="Crop")
|
||||
|
||||
col = split.column()
|
||||
sub = col.column(align=True)
|
||||
sub.label(text="Frame Range:")
|
||||
sub.prop(scene, "frame_start", text="Start")
|
||||
sub.prop(scene, "frame_end", text="End")
|
||||
sub.prop(scene, "frame_step", text="Step")
|
||||
|
||||
sub.label(text="Frame Rate:")
|
||||
if rd.fps_base == 1:
|
||||
fps_rate = round(rd.fps / rd.fps_base)
|
||||
else:
|
||||
fps_rate = round(rd.fps / rd.fps_base, 2)
|
||||
|
||||
# TODO: Change the following to iterate over existing presets
|
||||
custom_framerate = (fps_rate not in {23.98, 24, 25, 29.97, 30, 50, 59.94, 60})
|
||||
|
||||
if custom_framerate == True:
|
||||
fps_label_text = "Custom (" + str(fps_rate) + " fps)"
|
||||
else:
|
||||
fps_label_text = str(fps_rate) + " fps"
|
||||
|
||||
sub.menu("RENDER_MT_framerate_presets", text=fps_label_text)
|
||||
|
||||
if custom_framerate or (bpy.types.RENDER_MT_framerate_presets.bl_label == "Custom"):
|
||||
sub.prop(rd, "fps")
|
||||
sub.prop(rd, "fps_base", text="/")
|
||||
subrow = sub.row(align=True)
|
||||
subrow.label(text="Time Remapping:")
|
||||
subrow = sub.row(align=True)
|
||||
subrow.prop(rd, "frame_map_old", text="Old")
|
||||
subrow.prop(rd, "frame_map_new", text="New")
|
||||
|
||||
|
||||
class RENDER_PT_antialiasing(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Anti-Aliasing"
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
||||
self.layout.prop(rd, "use_antialiasing", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rd = context.scene.render
|
||||
layout.active = rd.use_antialiasing
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.row().prop(rd, "antialiasing_samples", expand=True)
|
||||
sub = col.row()
|
||||
sub.enabled = not rd.use_border
|
||||
sub.prop(rd, "use_full_sample")
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "pixel_filter_type", text="")
|
||||
col.prop(rd, "filter_size", text="Size")
|
||||
|
||||
|
||||
class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Sampled Motion Blur"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
rd = context.scene.render
|
||||
return not rd.use_full_sample and (rd.engine in cls.COMPAT_ENGINES)
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
||||
self.layout.prop(rd, "use_motion_blur", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rd = context.scene.render
|
||||
layout.active = rd.use_motion_blur
|
||||
|
||||
row = layout.row()
|
||||
row.prop(rd, "motion_blur_samples")
|
||||
row.prop(rd, "motion_blur_shutter")
|
||||
|
||||
|
||||
class RENDER_PT_shading(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Shading"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
def draw(self, context):
|
||||
|
@ -254,8 +376,7 @@ class RENDER_PT_post_processing(RenderButtonsPanel, bpy.types.Panel):
|
|||
col.prop(rd, "use_compositing")
|
||||
col.prop(rd, "use_sequencer")
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "dither_intensity", text="Dither", slider=True)
|
||||
split.prop(rd, "dither_intensity", text="Dither", slider=True)
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
@ -276,6 +397,51 @@ class RENDER_PT_post_processing(RenderButtonsPanel, bpy.types.Panel):
|
|||
sub.prop(rd, "edge_color", text="")
|
||||
|
||||
|
||||
class RENDER_PT_stamp(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Stamp"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
||||
self.layout.prop(rd, "use_stamp", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rd = context.scene.render
|
||||
|
||||
layout.active = rd.use_stamp
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "use_stamp_time", text="Time")
|
||||
col.prop(rd, "use_stamp_date", text="Date")
|
||||
col.prop(rd, "use_stamp_render_time", text="RenderTime")
|
||||
col.prop(rd, "use_stamp_frame", text="Frame")
|
||||
col.prop(rd, "use_stamp_scene", text="Scene")
|
||||
col.prop(rd, "use_stamp_camera", text="Camera")
|
||||
col.prop(rd, "use_stamp_lens", text="Lens")
|
||||
col.prop(rd, "use_stamp_filename", text="Filename")
|
||||
col.prop(rd, "use_stamp_marker", text="Marker")
|
||||
col.prop(rd, "use_stamp_sequencer_strip", text="Seq. Strip")
|
||||
|
||||
col = split.column()
|
||||
col.active = rd.use_stamp
|
||||
col.prop(rd, "stamp_foreground", slider=True)
|
||||
col.prop(rd, "stamp_background", slider=True)
|
||||
col.separator()
|
||||
col.prop(rd, "stamp_font_size", text="Font Size")
|
||||
|
||||
row = layout.split(percentage=0.2)
|
||||
row.prop(rd, "use_stamp_note", text="Note")
|
||||
sub = row.row()
|
||||
sub.active = rd.use_stamp_note
|
||||
sub.prop(rd, "stamp_note_text", text="")
|
||||
|
||||
|
||||
class RENDER_PT_output(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Output"
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
@ -433,172 +599,6 @@ class RENDER_PT_encoding(RenderButtonsPanel, bpy.types.Panel):
|
|||
split.prop(rd, "ffmpeg_audio_volume", slider=True)
|
||||
|
||||
|
||||
class RENDER_PT_antialiasing(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Anti-Aliasing"
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
||||
self.layout.prop(rd, "use_antialiasing", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rd = context.scene.render
|
||||
layout.active = rd.use_antialiasing
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.row().prop(rd, "antialiasing_samples", expand=True)
|
||||
sub = col.row()
|
||||
sub.enabled = not rd.use_border
|
||||
sub.prop(rd, "use_full_sample")
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "pixel_filter_type", text="")
|
||||
col.prop(rd, "filter_size", text="Size")
|
||||
|
||||
|
||||
class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Sampled Motion Blur"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
rd = context.scene.render
|
||||
return not rd.use_full_sample and (rd.engine in cls.COMPAT_ENGINES)
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
||||
self.layout.prop(rd, "use_motion_blur", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rd = context.scene.render
|
||||
layout.active = rd.use_motion_blur
|
||||
|
||||
row = layout.row()
|
||||
row.prop(rd, "motion_blur_samples")
|
||||
row.prop(rd, "motion_blur_shutter")
|
||||
|
||||
|
||||
class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Dimensions"
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
scene = context.scene
|
||||
rd = scene.render
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.menu("RENDER_MT_presets", text=bpy.types.RENDER_MT_presets.bl_label)
|
||||
row.operator("render.preset_add", text="", icon="ZOOMIN")
|
||||
row.operator("render.preset_add", text="", icon="ZOOMOUT").remove_active = True
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
sub = col.column(align=True)
|
||||
sub.label(text="Resolution:")
|
||||
sub.prop(rd, "resolution_x", text="X")
|
||||
sub.prop(rd, "resolution_y", text="Y")
|
||||
sub.prop(rd, "resolution_percentage", text="")
|
||||
|
||||
sub.label(text="Aspect Ratio:")
|
||||
sub.prop(rd, "pixel_aspect_x", text="X")
|
||||
sub.prop(rd, "pixel_aspect_y", text="Y")
|
||||
|
||||
row = col.row()
|
||||
row.prop(rd, "use_border", text="Border")
|
||||
sub = row.row()
|
||||
sub.active = rd.use_border
|
||||
sub.prop(rd, "use_crop_to_border", text="Crop")
|
||||
|
||||
col = split.column()
|
||||
sub = col.column(align=True)
|
||||
sub.label(text="Frame Range:")
|
||||
sub.prop(scene, "frame_start", text="Start")
|
||||
sub.prop(scene, "frame_end", text="End")
|
||||
sub.prop(scene, "frame_step", text="Step")
|
||||
|
||||
sub.label(text="Frame Rate:")
|
||||
if rd.fps_base == 1:
|
||||
fps_rate = round(rd.fps / rd.fps_base)
|
||||
else:
|
||||
fps_rate = round(rd.fps / rd.fps_base, 2)
|
||||
|
||||
# TODO: Change the following to iterate over existing presets
|
||||
custom_framerate = (fps_rate not in {23.98, 24, 25, 29.97, 30, 50, 59.94, 60})
|
||||
|
||||
if custom_framerate == True:
|
||||
fps_label_text = "Custom (" + str(fps_rate) + " fps)"
|
||||
else:
|
||||
fps_label_text = str(fps_rate) + " fps"
|
||||
|
||||
sub.menu("RENDER_MT_framerate_presets", text=fps_label_text)
|
||||
|
||||
if custom_framerate or (bpy.types.RENDER_MT_framerate_presets.bl_label == "Custom"):
|
||||
sub.prop(rd, "fps")
|
||||
sub.prop(rd, "fps_base", text="/")
|
||||
subrow = sub.row(align=True)
|
||||
subrow.label(text="Time Remapping:")
|
||||
subrow = sub.row(align=True)
|
||||
subrow.prop(rd, "frame_map_old", text="Old")
|
||||
subrow.prop(rd, "frame_map_new", text="New")
|
||||
|
||||
|
||||
class RENDER_PT_stamp(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Stamp"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||
|
||||
def draw_header(self, context):
|
||||
rd = context.scene.render
|
||||
|
||||
self.layout.prop(rd, "use_stamp", text="")
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
rd = context.scene.render
|
||||
|
||||
layout.active = rd.use_stamp
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "use_stamp_time", text="Time")
|
||||
col.prop(rd, "use_stamp_date", text="Date")
|
||||
col.prop(rd, "use_stamp_render_time", text="RenderTime")
|
||||
col.prop(rd, "use_stamp_frame", text="Frame")
|
||||
col.prop(rd, "use_stamp_scene", text="Scene")
|
||||
col.prop(rd, "use_stamp_camera", text="Camera")
|
||||
col.prop(rd, "use_stamp_lens", text="Lens")
|
||||
col.prop(rd, "use_stamp_filename", text="Filename")
|
||||
col.prop(rd, "use_stamp_marker", text="Marker")
|
||||
col.prop(rd, "use_stamp_sequencer_strip", text="Seq. Strip")
|
||||
|
||||
col = split.column()
|
||||
col.active = rd.use_stamp
|
||||
col.prop(rd, "stamp_foreground", slider=True)
|
||||
col.prop(rd, "stamp_background", slider=True)
|
||||
col.separator()
|
||||
col.prop(rd, "stamp_font_size", text="Font Size")
|
||||
|
||||
row = layout.split(percentage=0.2)
|
||||
row.prop(rd, "use_stamp_note", text="Note")
|
||||
sub = row.row()
|
||||
sub.active = rd.use_stamp_note
|
||||
sub.prop(rd, "stamp_note_text", text="")
|
||||
|
||||
|
||||
class RENDER_PT_bake(RenderButtonsPanel, bpy.types.Panel):
|
||||
bl_label = "Bake"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
@ -613,29 +613,42 @@ class RENDER_PT_bake(RenderButtonsPanel, bpy.types.Panel):
|
|||
|
||||
layout.prop(rd, "bake_type")
|
||||
|
||||
if rd.bake_type == 'NORMALS':
|
||||
layout.prop(rd, "bake_normal_space")
|
||||
elif rd.bake_type in {'DISPLACEMENT', 'AO'}:
|
||||
layout.prop(rd, "use_bake_normalize")
|
||||
multires_bake = False
|
||||
if rd.bake_type in ['NORMALS', 'DISPLACEMENT']:
|
||||
layout.prop(rd, 'use_bake_multires')
|
||||
multires_bake = rd.use_bake_multires
|
||||
|
||||
# col.prop(rd, "bake_aa_mode")
|
||||
# col.prop(rd, "use_bake_antialiasing")
|
||||
if not multires_bake:
|
||||
if rd.bake_type == 'NORMALS':
|
||||
layout.prop(rd, "bake_normal_space")
|
||||
elif rd.bake_type in {'DISPLACEMENT', 'AO'}:
|
||||
layout.prop(rd, "use_bake_normalize")
|
||||
|
||||
layout.separator()
|
||||
# col.prop(rd, "bake_aa_mode")
|
||||
# col.prop(rd, "use_bake_antialiasing")
|
||||
|
||||
split = layout.split()
|
||||
layout.separator()
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "use_bake_clear")
|
||||
col.prop(rd, "bake_margin")
|
||||
col.prop(rd, "bake_quad_split", text="Split")
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "use_bake_clear")
|
||||
col.prop(rd, "bake_margin")
|
||||
col.prop(rd, "bake_quad_split", text="Split")
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "use_bake_selected_to_active")
|
||||
sub = col.column()
|
||||
sub.active = rd.use_bake_selected_to_active
|
||||
sub.prop(rd, "bake_distance")
|
||||
sub.prop(rd, "bake_bias")
|
||||
else:
|
||||
if rd.bake_type == 'DISPLACEMENT':
|
||||
layout.prop(rd, "use_bake_lores_mesh")
|
||||
|
||||
layout.prop(rd, "use_bake_clear")
|
||||
layout.prop(rd, "bake_margin")
|
||||
|
||||
col = split.column()
|
||||
col.prop(rd, "use_bake_selected_to_active")
|
||||
sub = col.column()
|
||||
sub.active = rd.use_bake_selected_to_active
|
||||
sub.prop(rd, "bake_distance")
|
||||
sub.prop(rd, "bake_bias")
|
||||
|
||||
if __name__ == "__main__": # only for live edit.
|
||||
bpy.utils.register_module(__name__)
|
||||
|
|
|
@ -42,7 +42,7 @@ class TEXT_HT_header(bpy.types.Header):
|
|||
|
||||
if text and text.is_modified:
|
||||
row = layout.row()
|
||||
# row.color(redalert)
|
||||
row.alert = True
|
||||
row.operator("text.resolve_conflict", text="", icon='HELP')
|
||||
|
||||
layout.template_ID(st, "text", new="text.new", unlink="text.unlink")
|
||||
|
|
|
@ -22,7 +22,7 @@ import os
|
|||
import addon_utils
|
||||
|
||||
from bpy.props import StringProperty, BoolProperty, EnumProperty
|
||||
|
||||
from blf import gettext as _
|
||||
|
||||
def ui_items_general(col, context):
|
||||
""" General UI Theme Settings (User Interface)
|
||||
|
@ -126,7 +126,7 @@ class USERPREF_MT_appconfigs(bpy.types.Menu):
|
|||
preset_operator = "wm.appconfig_activate"
|
||||
|
||||
def draw(self, context):
|
||||
props = self.layout.operator("wm.appconfig_default", text="Blender (default)")
|
||||
props = self.layout.operator("wm.appconfig_default", text=_("Blender (default)"))
|
||||
|
||||
# now draw the presets
|
||||
bpy.types.Menu.draw_preset(self, context)
|
||||
|
@ -141,12 +141,12 @@ class USERPREF_MT_splash(bpy.types.Menu):
|
|||
row = split.row()
|
||||
row.label("")
|
||||
row = split.row()
|
||||
row.label("Interaction:")
|
||||
row.label(_("Interaction:"))
|
||||
# XXX, no redraws
|
||||
# text = bpy.path.display_name(context.window_manager.keyconfigs.active.name)
|
||||
# if not text:
|
||||
# text = "Blender (default)"
|
||||
row.menu("USERPREF_MT_appconfigs", text="Preset")
|
||||
row.menu("USERPREF_MT_appconfigs", text=_("Preset"))
|
||||
|
||||
|
||||
class USERPREF_PT_interface(bpy.types.Panel):
|
||||
|
|
|
@ -411,8 +411,8 @@ def export_properties(prefix, properties, lines=None):
|
|||
if lines is None:
|
||||
lines = []
|
||||
|
||||
for pname in properties.keys():
|
||||
if not properties.is_property_hidden(pname):
|
||||
for pname in properties.bl_rna.properties.keys():
|
||||
if pname != "rna_type" and not properties.is_property_hidden(pname):
|
||||
value = getattr(properties, pname)
|
||||
if isinstance(value, bpy.types.OperatorProperties):
|
||||
export_properties(prefix + "." + pname, value, lines)
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class VIEW3D_HT_header(bpy.types.Header):
|
||||
bl_space_type = 'VIEW_3D'
|
||||
|
||||
|
@ -685,6 +684,7 @@ class VIEW3D_MT_object(bpy.types.Menu):
|
|||
|
||||
layout.operator("ed.undo")
|
||||
layout.operator("ed.redo")
|
||||
layout.operator("ed.undo_history")
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
@ -1049,6 +1049,7 @@ class VIEW3D_MT_paint_weight(bpy.types.Menu):
|
|||
|
||||
layout.operator("ed.undo")
|
||||
layout.operator("ed.redo")
|
||||
layout.operator("ed.undo_history")
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
@ -1129,6 +1130,7 @@ class VIEW3D_MT_particle(bpy.types.Menu):
|
|||
|
||||
layout.operator("ed.undo")
|
||||
layout.operator("ed.redo")
|
||||
layout.operator("ed.undo_history")
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
@ -1182,6 +1184,7 @@ class VIEW3D_MT_pose(bpy.types.Menu):
|
|||
|
||||
layout.operator("ed.undo")
|
||||
layout.operator("ed.redo")
|
||||
layout.operator("ed.undo_history")
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
@ -1373,6 +1376,7 @@ class VIEW3D_MT_edit_mesh(bpy.types.Menu):
|
|||
|
||||
layout.operator("ed.undo")
|
||||
layout.operator("ed.redo")
|
||||
layout.operator("ed.undo_history")
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
@ -1844,6 +1848,7 @@ class VIEW3D_MT_edit_meta(bpy.types.Menu):
|
|||
|
||||
layout.operator("ed.undo")
|
||||
layout.operator("ed.redo")
|
||||
layout.operator("ed.undo_history")
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
# <pep8 compliant>
|
||||
import bpy
|
||||
|
||||
|
||||
class View3DPanel():
|
||||
bl_space_type = 'VIEW_3D'
|
||||
bl_region_type = 'TOOLS'
|
||||
|
|
|
@ -205,6 +205,8 @@ Section "Uninstall"
|
|||
|
||||
; Remove files
|
||||
[DELROOTDIRCONTS]
|
||||
[DELDATAFILES]
|
||||
[DELDATADIRS]
|
||||
|
||||
Delete "$INSTDIR\uninstall.exe"
|
||||
|
||||
|
@ -212,13 +214,14 @@ Section "Uninstall"
|
|||
RMDir /r "$BLENDERCONFIG\$SHORTVERSION"
|
||||
${Endif}
|
||||
|
||||
; Remove install directory if it's empty
|
||||
RMDir $INSTDIR
|
||||
; Remove shortcuts
|
||||
Delete "$SMPROGRAMS\Blender Foundation\Blender\*.*"
|
||||
Delete "$DESKTOP\Blender.lnk"
|
||||
; Remove all link related directories and files
|
||||
RMDir /r "$SMPROGRAMS\Blender Foundation"
|
||||
; Clear out installation dir
|
||||
RMDir /r "$INSTDIR"
|
||||
RMDir "$SMPROGRAMS\Blender Foundation\Blender"
|
||||
RMDir "$SMPROGRAMS\Blender Foundation"
|
||||
|
||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' ; Refresh icons
|
||||
SectionEnd
|
||||
|
|
|
@ -27,6 +27,9 @@
|
|||
set(INC
|
||||
.
|
||||
../../../intern/guardedalloc
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${JPEG_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
|
@ -47,4 +50,4 @@ set(SRC
|
|||
intern/rgb32.h
|
||||
)
|
||||
|
||||
blender_add_lib(bf_avi "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_avi "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -29,6 +29,9 @@ set(INC
|
|||
../editors/include
|
||||
../blenkernel
|
||||
../../../intern/guardedalloc
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${GLEW_INCLUDE_PATH}
|
||||
${FREETYPE_INCLUDE_DIRS}
|
||||
)
|
||||
|
@ -47,7 +50,7 @@ set(SRC
|
|||
)
|
||||
|
||||
if(WITH_INTERNATIONAL)
|
||||
list(APPEND INC ${GETTEXT_INC})
|
||||
list(APPEND INC_SYS ${GETTEXT_INC})
|
||||
add_definitions(-DINTERNATIONAL)
|
||||
endif()
|
||||
|
||||
|
@ -55,5 +58,5 @@ if(WIN32 AND NOT UNIX)
|
|||
add_definitions(-DUSE_GETTEXT_DLL)
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_blenfont "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_blenfont "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
||||
|
|
|
@ -89,6 +89,7 @@ extern int BKE_undo_valid(const char *name);
|
|||
extern void BKE_reset_undo(void);
|
||||
extern char *BKE_undo_menu_string(void);
|
||||
extern void BKE_undo_number(struct bContext *C, int nr);
|
||||
extern char *BKE_undo_get_name(int nr, int *active);
|
||||
extern void BKE_undo_save_quit(void);
|
||||
extern struct Main *BKE_undo_get_main(struct Scene **scene);
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ float brush_curve_strength(struct Brush *br, float p, const float len); /* used
|
|||
/* sampling */
|
||||
void brush_sample_tex(struct Brush *brush, float *xy, float *rgba, const int thread);
|
||||
void brush_imbuf_new(struct Brush *brush, short flt, short texfalloff, int size,
|
||||
struct ImBuf **imbuf);
|
||||
struct ImBuf **imbuf, int use_color_correction);
|
||||
|
||||
/* painting */
|
||||
struct BrushPainter;
|
||||
|
@ -82,7 +82,7 @@ BrushPainter *brush_painter_new(struct Brush *brush);
|
|||
void brush_painter_require_imbuf(BrushPainter *painter, short flt,
|
||||
short texonly, int size);
|
||||
int brush_painter_paint(BrushPainter *painter, BrushFunc func, float *pos,
|
||||
double time, float pressure, void *user);
|
||||
double time, float pressure, void *user, int use_color_correction);
|
||||
void brush_painter_break_stroke(BrushPainter *painter);
|
||||
void brush_painter_free(BrushPainter *painter);
|
||||
|
||||
|
|
|
@ -59,9 +59,9 @@ float defvert_array_find_weight_safe(const struct MDeformVert *dvert, int index
|
|||
|
||||
void defvert_copy(struct MDeformVert *dvert_r, const struct MDeformVert *dvert);
|
||||
void defvert_sync(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, int use_verify);
|
||||
void defvert_sync_mapped(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, int *flip_map, int use_verify);
|
||||
void defvert_sync_mapped(struct MDeformVert *dvert_r, const struct MDeformVert *dvert, const int *flip_map, int use_verify);
|
||||
void defvert_remap (struct MDeformVert *dvert, int *map);
|
||||
void defvert_flip(struct MDeformVert *dvert, int *flip_map);
|
||||
void defvert_flip(struct MDeformVert *dvert, const int *flip_map);
|
||||
void defvert_normalize(struct MDeformVert *dvert);
|
||||
|
||||
/* utility function, note that 32 chars is the maximum string length since its only
|
||||
|
|
|
@ -145,6 +145,7 @@ typedef struct Global {
|
|||
#define G_FILE_IGNORE_DEPRECATION_WARNINGS (1 << 22) /* deprecated */
|
||||
#define G_FILE_RECOVER (1 << 23)
|
||||
#define G_FILE_RELATIVE_REMAP (1 << 24)
|
||||
#define G_FILE_HISTORY (1 << 25)
|
||||
|
||||
/* G.windowstate */
|
||||
#define G_WINDOWSTATE_USERDEF 0
|
||||
|
|
|
@ -91,6 +91,7 @@ void multires_topology_changed(struct Scene *scene, struct Object *ob);
|
|||
void old_mdisps_bilinear(float out[3], float (*disps)[3], const int st, float u, float v);
|
||||
void mdisp_rot_crn_to_face(const int S, const int corners, const int face_side, const float x, const float y, float *u, float *v);
|
||||
int mdisp_rot_face_to_crn(const int corners, const int face_side, const float u, const float v, float *x, float *y);
|
||||
int mdisp_rot_face_to_quad_crn(const int corners, const int face_side, const float u, const float v, float *x, float *y);
|
||||
void mdisp_apply_weight(const int S, const int corners, int x, int y, const int face_side, float crn_weight[4][2], float *u_r, float *v_r);
|
||||
void mdisp_flip_disp(const int S, const int corners, const float axis_x[2], const float axis_y[2], float disp[3]);
|
||||
void mdisp_join_tris(struct MDisps *dst, struct MDisps *tri1, struct MDisps *tri2);
|
||||
|
|
|
@ -103,6 +103,8 @@ void set_current_material_texture(struct Material *ma, struct Tex *tex);
|
|||
void set_current_lamp_texture(struct Lamp *la, struct Tex *tex);
|
||||
void set_current_particle_texture(struct ParticleSettings *part, struct Tex *tex);
|
||||
|
||||
int has_current_material_texture(struct Material *ma);
|
||||
|
||||
struct TexMapping *add_mapping(void);
|
||||
void init_mapping(struct TexMapping *texmap);
|
||||
|
||||
|
|
|
@ -55,6 +55,9 @@ set(INC
|
|||
../../../intern/smoke/extern
|
||||
../../../intern/mikktspace
|
||||
../../../source/blender/windowmanager # XXX - BAD LEVEL CALL WM_api.h
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${GLEW_INCLUDE_PATH}
|
||||
${ZLIB_INCLUDE_DIRS}
|
||||
)
|
||||
|
@ -269,17 +272,19 @@ if(WITH_IMAGE_HDR)
|
|||
endif()
|
||||
|
||||
if(WITH_CODEC_QUICKTIME)
|
||||
list(APPEND INC ../quicktime ${QUICKTIME_INC})
|
||||
list(APPEND INC ../quicktime)
|
||||
list(APPEND INC_SYS ${QUICKTIME_INC})
|
||||
add_definitions(-DWITH_QUICKTIME)
|
||||
endif()
|
||||
|
||||
if(WITH_CODEC_FFMPEG)
|
||||
list(APPEND INC ${FFMPEG_INC})
|
||||
list(APPEND INC_SYS ${FFMPEG_INC})
|
||||
add_definitions(-DWITH_FFMPEG)
|
||||
endif()
|
||||
|
||||
if(WITH_PYTHON)
|
||||
list(APPEND INC ../python ${PYTHON_INCLUDE_DIRS})
|
||||
list(APPEND INC ../python)
|
||||
list(APPEND INC_SYS ${PYTHON_INCLUDE_DIRS})
|
||||
add_definitions(-DWITH_PYTHON)
|
||||
|
||||
if(WITH_PYTHON_SECURITY)
|
||||
|
@ -300,12 +305,12 @@ if(WITH_JACK)
|
|||
endif()
|
||||
|
||||
if(WITH_LZO)
|
||||
list(APPEND INC ../../../extern/lzo/minilzo)
|
||||
list(APPEND INC_SYS ../../../extern/lzo/minilzo)
|
||||
add_definitions(-DWITH_LZO)
|
||||
endif()
|
||||
|
||||
if(WITH_LZMA)
|
||||
list(APPEND INC ../../../extern/lzma)
|
||||
list(APPEND INC_SYS ../../../extern/lzma)
|
||||
add_definitions(-DWITH_LZMA)
|
||||
endif()
|
||||
|
||||
|
@ -313,4 +318,4 @@ if(MSVC)
|
|||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_blenkernel "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_blenkernel "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -180,7 +180,6 @@ static void clean_paths(Main *main)
|
|||
BLI_bpathIterator_free(bpi);
|
||||
|
||||
for(scene= main->scene.first; scene; scene= scene->id.next) {
|
||||
BLI_clean(scene->r.backbuf);
|
||||
BLI_clean(scene->r.pic);
|
||||
}
|
||||
}
|
||||
|
@ -523,7 +522,8 @@ void BKE_write_undo(bContext *C, const char *name)
|
|||
static int counter= 0;
|
||||
char filepath[FILE_MAXDIR+FILE_MAXFILE];
|
||||
char numstr[32];
|
||||
|
||||
int fileflags = G.fileflags & ~(G_FILE_HISTORY); /* don't do file history on undo */
|
||||
|
||||
/* calculate current filepath */
|
||||
counter++;
|
||||
counter= counter % U.undosteps;
|
||||
|
@ -531,7 +531,7 @@ void BKE_write_undo(bContext *C, const char *name)
|
|||
BLI_snprintf(numstr, sizeof(numstr), "%d.blend", counter);
|
||||
BLI_make_file_string("/", filepath, btempdir, numstr);
|
||||
|
||||
success= BLO_write_file(CTX_data_main(C), filepath, G.fileflags, NULL, NULL);
|
||||
success= BLO_write_file(CTX_data_main(C), filepath, fileflags, NULL, NULL);
|
||||
|
||||
BLI_strncpy(curundo->str, filepath, sizeof(curundo->str));
|
||||
}
|
||||
|
@ -619,7 +619,7 @@ void BKE_reset_undo(void)
|
|||
/* based on index nr it does a restore */
|
||||
void BKE_undo_number(bContext *C, int nr)
|
||||
{
|
||||
curundo= BLI_findlink(&undobase, nr - 1);
|
||||
curundo= BLI_findlink(&undobase, nr);
|
||||
BKE_undo_step(C, 0);
|
||||
}
|
||||
|
||||
|
@ -645,6 +645,21 @@ int BKE_undo_valid(const char *name)
|
|||
return undobase.last != undobase.first;
|
||||
}
|
||||
|
||||
/* get name of undo item, return null if no item with this index */
|
||||
/* if active pointer, set it to 1 if true */
|
||||
char *BKE_undo_get_name(int nr, int *active)
|
||||
{
|
||||
UndoElem *uel= BLI_findlink(&undobase, nr);
|
||||
|
||||
if(active) *active= 0;
|
||||
|
||||
if(uel) {
|
||||
if(active && uel==curundo)
|
||||
*active= 1;
|
||||
return uel->name;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *BKE_undo_menu_string(void)
|
||||
{
|
||||
|
|
|
@ -521,7 +521,7 @@ void brush_sample_tex(Brush *brush, float *xy, float *rgba, const int thread)
|
|||
}
|
||||
|
||||
|
||||
void brush_imbuf_new(Brush *brush, short flt, short texfall, int bufsize, ImBuf **outbuf)
|
||||
void brush_imbuf_new(Brush *brush, short flt, short texfall, int bufsize, ImBuf **outbuf, int use_color_correction)
|
||||
{
|
||||
ImBuf *ibuf;
|
||||
float xy[2], dist, rgba[4], *dstf;
|
||||
|
@ -529,7 +529,8 @@ void brush_imbuf_new(Brush *brush, short flt, short texfall, int bufsize, ImBuf
|
|||
const int radius= brush_size(brush);
|
||||
char *dst, crgb[3];
|
||||
const float alpha= brush_alpha(brush);
|
||||
|
||||
float brush_rgb[3];
|
||||
|
||||
imbflag= (flt)? IB_rectfloat: IB_rect;
|
||||
xoff = -bufsize/2.0f + 0.5f;
|
||||
yoff = -bufsize/2.0f + 0.5f;
|
||||
|
@ -541,6 +542,11 @@ void brush_imbuf_new(Brush *brush, short flt, short texfall, int bufsize, ImBuf
|
|||
ibuf= IMB_allocImBuf(bufsize, bufsize, 32, imbflag);
|
||||
|
||||
if (flt) {
|
||||
copy_v3_v3(brush_rgb, brush->rgb);
|
||||
if(use_color_correction){
|
||||
srgb_to_linearrgb_v3_v3(brush_rgb, brush_rgb);
|
||||
}
|
||||
|
||||
for (y=0; y < ibuf->y; y++) {
|
||||
dstf = ibuf->rect_float + y*rowbytes;
|
||||
|
||||
|
@ -551,7 +557,7 @@ void brush_imbuf_new(Brush *brush, short flt, short texfall, int bufsize, ImBuf
|
|||
if (texfall == 0) {
|
||||
dist = sqrt(xy[0]*xy[0] + xy[1]*xy[1]);
|
||||
|
||||
VECCOPY(dstf, brush->rgb);
|
||||
VECCOPY(dstf, brush_rgb);
|
||||
dstf[3]= alpha*brush_curve_strength_clamp(brush, dist, radius);
|
||||
}
|
||||
else if (texfall == 1) {
|
||||
|
@ -561,10 +567,7 @@ void brush_imbuf_new(Brush *brush, short flt, short texfall, int bufsize, ImBuf
|
|||
dist = sqrt(xy[0]*xy[0] + xy[1]*xy[1]);
|
||||
|
||||
brush_sample_tex(brush, xy, rgba, 0);
|
||||
|
||||
dstf[0] = rgba[0]*brush->rgb[0];
|
||||
dstf[1] = rgba[1]*brush->rgb[1];
|
||||
dstf[2] = rgba[2]*brush->rgb[2];
|
||||
mul_v3_v3v3(dstf, rgba, brush_rgb);
|
||||
dstf[3] = rgba[3]*alpha*brush_curve_strength_clamp(brush, dist, radius);
|
||||
}
|
||||
}
|
||||
|
@ -862,7 +865,7 @@ static void brush_painter_fixed_tex_partial_update(BrushPainter *painter, float
|
|||
brush_painter_do_partial(painter, NULL, x1, y2, x2, ibuf->y, 0, 0, pos);
|
||||
}
|
||||
|
||||
static void brush_painter_refresh_cache(BrushPainter *painter, float *pos)
|
||||
static void brush_painter_refresh_cache(BrushPainter *painter, float *pos, int use_color_correction)
|
||||
{
|
||||
Brush *brush= painter->brush;
|
||||
BrushPainterCache *cache= &painter->cache;
|
||||
|
@ -889,11 +892,11 @@ static void brush_painter_refresh_cache(BrushPainter *painter, float *pos)
|
|||
size= (cache->size)? cache->size: diameter;
|
||||
|
||||
if (brush->flag & BRUSH_FIXED_TEX) {
|
||||
brush_imbuf_new(brush, flt, 3, size, &cache->maskibuf);
|
||||
brush_imbuf_new(brush, flt, 3, size, &cache->maskibuf, use_color_correction);
|
||||
brush_painter_fixed_tex_partial_update(painter, pos);
|
||||
}
|
||||
else
|
||||
brush_imbuf_new(brush, flt, 2, size, &cache->ibuf);
|
||||
brush_imbuf_new(brush, flt, 2, size, &cache->ibuf, use_color_correction);
|
||||
|
||||
cache->lastsize= diameter;
|
||||
cache->lastalpha= alpha;
|
||||
|
@ -952,7 +955,7 @@ void brush_jitter_pos(Brush *brush, float *pos, float *jitterpos)
|
|||
}
|
||||
}
|
||||
|
||||
int brush_painter_paint(BrushPainter *painter, BrushFunc func, float *pos, double time, float pressure, void *user)
|
||||
int brush_painter_paint(BrushPainter *painter, BrushFunc func, float *pos, double time, float pressure, void *user, int use_color_correction)
|
||||
{
|
||||
Brush *brush= painter->brush;
|
||||
int totpaintops= 0;
|
||||
|
@ -970,7 +973,7 @@ int brush_painter_paint(BrushPainter *painter, BrushFunc func, float *pos, doubl
|
|||
|
||||
brush_apply_pressure(painter, brush, pressure);
|
||||
if (painter->cache.enabled)
|
||||
brush_painter_refresh_cache(painter, pos);
|
||||
brush_painter_refresh_cache(painter, pos, use_color_correction);
|
||||
totpaintops += func(user, painter->cache.ibuf, pos, pos);
|
||||
|
||||
painter->lasttime= time;
|
||||
|
@ -1043,7 +1046,7 @@ int brush_painter_paint(BrushPainter *painter, BrushFunc func, float *pos, doubl
|
|||
brush_jitter_pos(brush, paintpos, finalpos);
|
||||
|
||||
if (painter->cache.enabled)
|
||||
brush_painter_refresh_cache(painter, finalpos);
|
||||
brush_painter_refresh_cache(painter, finalpos, use_color_correction);
|
||||
|
||||
totpaintops +=
|
||||
func(user, painter->cache.ibuf, painter->lastpaintpos, finalpos);
|
||||
|
@ -1057,7 +1060,7 @@ int brush_painter_paint(BrushPainter *painter, BrushFunc func, float *pos, doubl
|
|||
brush_jitter_pos(brush, pos, finalpos);
|
||||
|
||||
if (painter->cache.enabled)
|
||||
brush_painter_refresh_cache(painter, finalpos);
|
||||
brush_painter_refresh_cache(painter, finalpos, use_color_correction);
|
||||
|
||||
totpaintops += func(user, painter->cache.ibuf, pos, finalpos);
|
||||
|
||||
|
@ -1085,7 +1088,7 @@ int brush_painter_paint(BrushPainter *painter, BrushFunc func, float *pos, doubl
|
|||
brush_jitter_pos(brush, pos, finalpos);
|
||||
|
||||
if (painter->cache.enabled)
|
||||
brush_painter_refresh_cache(painter, finalpos);
|
||||
brush_painter_refresh_cache(painter, finalpos, use_color_correction);
|
||||
|
||||
totpaintops +=
|
||||
func(user, painter->cache.ibuf, painter->lastmousepos, finalpos);
|
||||
|
|
|
@ -540,7 +540,7 @@ static void layerInterp_mdisps(void **sources, float *UNUSED(weights),
|
|||
float face_u, face_v, crn_u, crn_v;
|
||||
|
||||
mdisp_apply_weight(S, dst_corners, x, y, st, crn_weight, &face_u, &face_v);
|
||||
crn = mdisp_rot_face_to_crn(src_corners, st, face_u, face_v, &crn_u, &crn_v);
|
||||
crn = mdisp_rot_face_to_quad_crn(src_corners, st, face_u, face_v, &crn_u, &crn_v);
|
||||
|
||||
old_mdisps_bilinear((*out), &s->disps[crn*side*side], side, crn_u, crn_v);
|
||||
mdisp_flip_disp(crn, dst_corners, axis_x, axis_y, *out);
|
||||
|
|
|
@ -121,7 +121,7 @@ void defvert_sync (MDeformVert *dvert_r, const MDeformVert *dvert, int use_verif
|
|||
}
|
||||
|
||||
/* be sure all flip_map values are valid */
|
||||
void defvert_sync_mapped (MDeformVert *dvert_r, const MDeformVert *dvert, int *flip_map, int use_verify)
|
||||
void defvert_sync_mapped (MDeformVert *dvert_r, const MDeformVert *dvert, const int *flip_map, int use_verify)
|
||||
{
|
||||
if(dvert->totweight && dvert_r->totweight) {
|
||||
int i;
|
||||
|
@ -170,7 +170,7 @@ void defvert_normalize (MDeformVert *dvert)
|
|||
}
|
||||
}
|
||||
|
||||
void defvert_flip (MDeformVert *dvert, int *flip_map)
|
||||
void defvert_flip (MDeformVert *dvert, const int *flip_map)
|
||||
{
|
||||
MDeformWeight *dw;
|
||||
int i;
|
||||
|
|
|
@ -1020,7 +1020,7 @@ static void old_mdisps_rotate(int S, int UNUSED(newside), int oldside, int x, in
|
|||
|
||||
static void old_mdisps_convert(MFace *mface, MDisps *mdisp)
|
||||
{
|
||||
int newlvl = log(sqrt(mdisp->totdisp)-1)/log(2);
|
||||
int newlvl = log(sqrt(mdisp->totdisp)-1)/M_LN2;
|
||||
int oldlvl = newlvl+1;
|
||||
int oldside = multires_side_tot[oldlvl];
|
||||
int newside = multires_side_tot[newlvl];
|
||||
|
@ -1756,7 +1756,7 @@ void multires_topology_changed(Scene *scene, Object *ob)
|
|||
int nvert= me->mface[i].v4 ? 4 : 3;
|
||||
|
||||
/* allocate memory for mdisp, the whole disp layer would be erased otherwise */
|
||||
if(!mdisp->totdisp) {
|
||||
if(!mdisp->totdisp || !mdisp->disps) {
|
||||
if(grid) {
|
||||
mdisp->totdisp= nvert*grid;
|
||||
mdisp->disps= MEM_callocN(mdisp->totdisp*sizeof(float)*3, "mdisp topology");
|
||||
|
@ -1997,11 +1997,67 @@ void mdisp_rot_crn_to_face(const int S, const int corners, const int face_side,
|
|||
}
|
||||
}
|
||||
|
||||
/* Find per-corner coordinate with given per-face UV coord */
|
||||
int mdisp_rot_face_to_crn(const int corners, const int face_side, const float u, const float v, float *x, float *y)
|
||||
{
|
||||
const float offset = face_side*0.5f - 0.5f;
|
||||
int S = 0;
|
||||
|
||||
if (corners == 4) {
|
||||
if(u <= offset && v <= offset) S = 0;
|
||||
else if(u > offset && v <= offset) S = 1;
|
||||
else if(u > offset && v > offset) S = 2;
|
||||
else if(u <= offset && v >= offset) S = 3;
|
||||
|
||||
if(S == 0) {
|
||||
*y = offset - u;
|
||||
*x = offset - v;
|
||||
} else if(S == 1) {
|
||||
*x = u - offset;
|
||||
*y = offset - v;
|
||||
} else if(S == 2) {
|
||||
*y = u - offset;
|
||||
*x = v - offset;
|
||||
} else if(S == 3) {
|
||||
*x= offset - u;
|
||||
*y = v - offset;
|
||||
}
|
||||
} else {
|
||||
int grid_size = offset;
|
||||
float w = (face_side - 1) - u - v;
|
||||
float W1, W2;
|
||||
|
||||
if (u >= v && u >= w) {S = 0; W1= w; W2= v;}
|
||||
else if (v >= u && v >= w) {S = 1; W1 = u; W2 = w;}
|
||||
else {S = 2; W1 = v; W2 = u;}
|
||||
|
||||
W1 /= (face_side-1);
|
||||
W2 /= (face_side-1);
|
||||
|
||||
*x = (1-(2*W1)/(1-W2)) * grid_size;
|
||||
*y = (1-(2*W2)/(1-W1)) * grid_size;
|
||||
}
|
||||
|
||||
return S;
|
||||
}
|
||||
|
||||
/* Find per-corner coordinate with given per-face UV coord
|
||||
Practically as the previous funciton but it assumes a bit different coordinate system for triangles
|
||||
which is optimized for MDISP layer interpolation:
|
||||
|
||||
v
|
||||
^
|
||||
| /|
|
||||
| / |
|
||||
| / |
|
||||
|/______|___> u
|
||||
|
||||
*/
|
||||
int mdisp_rot_face_to_quad_crn(const int corners, const int face_side, const float u, const float v, float *x, float *y)
|
||||
{
|
||||
const float offset = face_side*0.5f - 0.5f;
|
||||
int S = 0;
|
||||
|
||||
if (corners == 4) {
|
||||
if(u <= offset && v <= offset) S = 0;
|
||||
else if(u > offset && v <= offset) S = 1;
|
||||
|
@ -2148,7 +2204,7 @@ void mdisp_join_tris(MDisps *dst, MDisps *tri1, MDisps *tri2)
|
|||
face_v = st - 1 - face_v;
|
||||
} else src = tri1;
|
||||
|
||||
crn = mdisp_rot_face_to_crn(3, st, face_u, face_v, &crn_u, &crn_v);
|
||||
crn = mdisp_rot_face_to_quad_crn(3, st, face_u, face_v, &crn_u, &crn_v);
|
||||
|
||||
old_mdisps_bilinear((*out), &src->disps[crn*side*side], side, crn_u, crn_v);
|
||||
(*out)[0] = 0;
|
||||
|
|
|
@ -350,7 +350,7 @@ static bNodeType ntype_group;
|
|||
/* groups display their internal tree name as label */
|
||||
static const char *group_label(bNode *node)
|
||||
{
|
||||
return node->id->name+2;
|
||||
return (node->id)? node->id->name+2: "Missing Datablock";
|
||||
}
|
||||
|
||||
void register_node_type_group(ListBase *lb)
|
||||
|
@ -2072,11 +2072,12 @@ static int set_stack_indexes_group(bNode *node, int index)
|
|||
bNodeTree *ngroup= (bNodeTree*)node->id;
|
||||
bNodeSocket *sock;
|
||||
|
||||
if((ngroup->init & NTREE_TYPE_INIT)==0)
|
||||
if(ngroup && (ngroup->init & NTREE_TYPE_INIT)==0)
|
||||
ntreeInitTypes(ngroup);
|
||||
|
||||
node->stack_index = index;
|
||||
index += ntree_begin_exec_tree(ngroup);
|
||||
if(ngroup)
|
||||
index += ntree_begin_exec_tree(ngroup);
|
||||
|
||||
for (sock=node->inputs.first; sock; sock=sock->next) {
|
||||
if (sock->link && sock->link->fromsock) {
|
||||
|
@ -2199,7 +2200,7 @@ static void composit_begin_exec(bNodeTree *ntree, bNodeStack *stack)
|
|||
if(node->type==CMP_NODE_CURVE_RGB)
|
||||
curvemapping_premultiply(node->storage, 0);
|
||||
}
|
||||
if(node->type==NODE_GROUP)
|
||||
if(node->type==NODE_GROUP && node->id)
|
||||
composit_begin_exec((bNodeTree *)node->id, stack + node->stack_index);
|
||||
|
||||
}
|
||||
|
@ -2225,7 +2226,7 @@ static void composit_end_exec(bNodeTree *ntree, bNodeStack *stack)
|
|||
if(node->type==CMP_NODE_CURVE_RGB)
|
||||
curvemapping_premultiply(node->storage, 1);
|
||||
|
||||
if(node->type==NODE_GROUP)
|
||||
if(node->type==NODE_GROUP && node->id)
|
||||
composit_end_exec((bNodeTree *)node->id, stack + node->stack_index);
|
||||
|
||||
node->need_exec= 0;
|
||||
|
|
|
@ -2387,24 +2387,42 @@ void object_set_dimensions(Object *ob, const float *value)
|
|||
void minmax_object(Object *ob, float *min, float *max)
|
||||
{
|
||||
BoundBox bb;
|
||||
Mesh *me;
|
||||
Curve *cu;
|
||||
float vec[3];
|
||||
int a;
|
||||
short change= FALSE;
|
||||
|
||||
switch(ob->type) {
|
||||
|
||||
case OB_CURVE:
|
||||
case OB_FONT:
|
||||
case OB_SURF:
|
||||
cu= ob->data;
|
||||
|
||||
if(cu->bb==NULL) tex_space_curve(cu);
|
||||
bb= *(cu->bb);
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
mul_m4_v3(ob->obmat, bb.vec[a]);
|
||||
DO_MINMAX(bb.vec[a], min, max);
|
||||
{
|
||||
Curve *cu= ob->data;
|
||||
|
||||
if(cu->bb==NULL) tex_space_curve(cu);
|
||||
bb= *(cu->bb);
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
mul_m4_v3(ob->obmat, bb.vec[a]);
|
||||
DO_MINMAX(bb.vec[a], min, max);
|
||||
}
|
||||
change= TRUE;
|
||||
}
|
||||
break;
|
||||
case OB_LATTICE:
|
||||
{
|
||||
Lattice *lt= ob->data;
|
||||
BPoint *bp= lt->def;
|
||||
int u, v, w;
|
||||
|
||||
for(w=0; w<lt->pntsw; w++) {
|
||||
for(v=0; v<lt->pntsv; v++) {
|
||||
for(u=0; u<lt->pntsu; u++, bp++) {
|
||||
mul_v3_m4v3(vec, ob->obmat, bp->vec);
|
||||
DO_MINMAX(vec, min, max);
|
||||
}
|
||||
}
|
||||
}
|
||||
change= TRUE;
|
||||
}
|
||||
break;
|
||||
case OB_ARMATURE:
|
||||
|
@ -2416,25 +2434,27 @@ void minmax_object(Object *ob, float *min, float *max)
|
|||
mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail);
|
||||
DO_MINMAX(vec, min, max);
|
||||
}
|
||||
break;
|
||||
change= TRUE;
|
||||
}
|
||||
/* no break, get_mesh will give NULL and it passes on to default */
|
||||
break;
|
||||
case OB_MESH:
|
||||
me= get_mesh(ob);
|
||||
|
||||
if(me) {
|
||||
bb = *mesh_get_bb(ob);
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
mul_m4_v3(ob->obmat, bb.vec[a]);
|
||||
DO_MINMAX(bb.vec[a], min, max);
|
||||
{
|
||||
Mesh *me= get_mesh(ob);
|
||||
|
||||
if(me) {
|
||||
bb = *mesh_get_bb(ob);
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
mul_m4_v3(ob->obmat, bb.vec[a]);
|
||||
DO_MINMAX(bb.vec[a], min, max);
|
||||
}
|
||||
change= TRUE;
|
||||
}
|
||||
}
|
||||
if(min[0] < max[0] ) break;
|
||||
|
||||
/* else here no break!!!, mesh can be zero sized */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(change == FALSE) {
|
||||
DO_MINMAX(ob->obmat[3], min, max);
|
||||
|
||||
copy_v3_v3(vec, ob->obmat[3]);
|
||||
|
@ -2444,7 +2464,6 @@ void minmax_object(Object *ob, float *min, float *max)
|
|||
copy_v3_v3(vec, ob->obmat[3]);
|
||||
sub_v3_v3(vec, ob->size);
|
||||
DO_MINMAX(vec, min, max);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4018,7 +4018,11 @@ void psys_get_particle_on_path(ParticleSimulationData *sim, int p, ParticleKey *
|
|||
init_particle_interpolation(sim->ob, psys, pa, &pind);
|
||||
do_particle_interpolation(psys, p, pa, t, &pind, state);
|
||||
|
||||
if(!keyed && !cached) {
|
||||
if(pind.dm) {
|
||||
mul_m4_v3(sim->ob->obmat, state->co);
|
||||
mul_mat3_m4_v3(sim->ob->obmat, state->vel);
|
||||
}
|
||||
else if(!keyed && !cached && !(psys->flag & PSYS_GLOBAL_HAIR)) {
|
||||
if((pa->flag & PARS_REKEY)==0) {
|
||||
psys_mat_hair_to_global(sim->ob, sim->psmd->dm, part->from, pa, hairmat);
|
||||
mul_m4_v3(hairmat, state->co);
|
||||
|
|
|
@ -468,6 +468,7 @@ Scene *add_scene(const char *name)
|
|||
|
||||
sce->r.ffcodecdata.audio_mixrate = 44100;
|
||||
sce->r.ffcodecdata.audio_volume = 1.0f;
|
||||
sce->r.ffcodecdata.audio_bitrate = 192;
|
||||
|
||||
BLI_strncpy(sce->r.engine, "BLENDER_RENDER", sizeof(sce->r.engine));
|
||||
|
||||
|
@ -475,8 +476,7 @@ Scene *add_scene(const char *name)
|
|||
sce->audio.doppler_factor = 1.0;
|
||||
sce->audio.speed_of_sound = 343.3;
|
||||
|
||||
strcpy(sce->r.backbuf, "//backbuf");
|
||||
strcpy(sce->r.pic, U.renderdir);
|
||||
BLI_strncpy(sce->r.pic, U.renderdir, sizeof(sce->r.pic));
|
||||
|
||||
BLI_init_rctf(&sce->r.safety, 0.1f, 0.9f, 0.1f, 0.9f);
|
||||
sce->r.osa= 8;
|
||||
|
|
|
@ -1582,7 +1582,7 @@ typedef struct WipeZone {
|
|||
static void precalc_wipe_zone(WipeZone *wipezone, WipeVars *wipe, int xo, int yo)
|
||||
{
|
||||
wipezone->flip = (wipe->angle < 0);
|
||||
wipezone->angle = pow(fabsf(wipe->angle)/45.0f, log(xo)/log(2.0f));
|
||||
wipezone->angle = pow(fabsf(wipe->angle)/45.0f, log(xo)/M_LN2);
|
||||
wipezone->xo = xo;
|
||||
wipezone->yo = yo;
|
||||
wipezone->width = (int)(wipe->edgeWidth*((xo+yo)/2.0f));
|
||||
|
@ -3021,10 +3021,15 @@ void sequence_effect_speed_rebuild_map(Scene *scene, Sequence * seq, int force)
|
|||
/* if not already done, load / initialize data */
|
||||
get_sequence_effect(seq);
|
||||
|
||||
if (!(force || seq->len != v->length || !v->frameMap)) {
|
||||
if ( (force == FALSE) &&
|
||||
(seq->len == v->length) &&
|
||||
(v->frameMap != NULL)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
if (!seq->seq1) { /* make coverity happy and check for (CID 598)
|
||||
if ( (seq->seq1 == NULL) ||
|
||||
(seq->len < 1)
|
||||
) { /* make coverity happy and check for (CID 598)
|
||||
input strip ... */
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -587,8 +587,22 @@ void calc_sequence(Scene *scene, Sequence *seq)
|
|||
if (seq->seq1) {
|
||||
seq->start= seq->startdisp= MAX3(seq->seq1->startdisp, seq->seq2->startdisp, seq->seq3->startdisp);
|
||||
seq->enddisp= MIN3(seq->seq1->enddisp, seq->seq2->enddisp, seq->seq3->enddisp);
|
||||
/* we cant help if strips don't overlap, it wont give useful results.
|
||||
* but at least ensure 'len' is never negative which causes bad bugs elsewhere. */
|
||||
if(seq->enddisp < seq->startdisp) {
|
||||
/* simple start/end swap */
|
||||
seq->start= seq->enddisp;
|
||||
seq->enddisp = seq->startdisp;
|
||||
seq->startdisp= seq->start;
|
||||
seq->flag |= SEQ_INVALID_EFFECT;
|
||||
}
|
||||
else {
|
||||
seq->flag &= ~SEQ_INVALID_EFFECT;
|
||||
}
|
||||
|
||||
seq->len= seq->enddisp - seq->startdisp;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
calc_sequence_disp(scene, seq);
|
||||
}
|
||||
|
||||
|
|
|
@ -1191,6 +1191,28 @@ void set_current_material_texture(Material *ma, Tex *newtex)
|
|||
}
|
||||
}
|
||||
|
||||
int has_current_material_texture(Material *ma)
|
||||
{
|
||||
bNode *node;
|
||||
|
||||
if(ma && ma->use_nodes && ma->nodetree) {
|
||||
node= nodeGetActiveID(ma->nodetree, ID_TE);
|
||||
|
||||
if(node) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
node= nodeGetActiveID(ma->nodetree, ID_MA);
|
||||
if(node)
|
||||
ma= (Material*)node->id;
|
||||
else
|
||||
ma= NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return (ma != NULL);
|
||||
}
|
||||
|
||||
Tex *give_current_world_texture(World *world)
|
||||
{
|
||||
MTex *mtex= NULL;
|
||||
|
|
|
@ -162,6 +162,9 @@ void barycentric_transform(float pt_tar[3], float const pt_src[3],
|
|||
void barycentric_weights_v2(const float v1[2], const float v2[2], const float v3[2],
|
||||
const float co[2], float w[3]);
|
||||
|
||||
void resolve_tri_uv(float uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2]);
|
||||
void resolve_quad_uv(float uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2], const float st3[2]);
|
||||
|
||||
/***************************** View & Projection *****************************/
|
||||
|
||||
void lookat_m4(float mat[4][4], float vx, float vy,
|
||||
|
|
|
@ -58,6 +58,8 @@ MINLINE void swap_v4_v4(float a[4], float b[4]);
|
|||
|
||||
/********************************* Arithmetic ********************************/
|
||||
|
||||
MINLINE void add_v3_fl(float r[3], float f);
|
||||
MINLINE void add_v4_fl(float r[4], float f);
|
||||
MINLINE void add_v2_v2(float r[2], const float a[2]);
|
||||
MINLINE void add_v2_v2v2(float r[2], const float a[2], const float b[2]);
|
||||
MINLINE void add_v3_v3(float r[3], const float a[3]);
|
||||
|
|
|
@ -103,6 +103,12 @@
|
|||
|
||||
#define FTOCHAR(val) ((val)<=0.0f)? 0 : (((val)>(1.0f-0.5f/255.0f))? 255 : (char)((255.0f*(val))+0.5f))
|
||||
#define FTOUSHORT(val) ((val >= 1.0f-0.5f/65535)? 65535: (val <= 0.0f)? 0: (unsigned short)(val*65535.0f + 0.5f))
|
||||
#define F3TOCHAR3(v2,v1) (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2]))
|
||||
#define F3TOCHAR4(v2,v1) { (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2])); \
|
||||
(v1)[3]=FTOCHAR((v2[3])); (v1)[3] = 255; }
|
||||
#define F4TOCHAR4(v2,v1) { (v1)[0]=FTOCHAR((v2[0])); (v1)[1]=FTOCHAR((v2[1])); (v1)[2]=FTOCHAR((v2[2])); \
|
||||
(v1)[3]=FTOCHAR((v2[3])); (v1)[3]=FTOCHAR((v2[3])); }
|
||||
|
||||
|
||||
#define VECCOPY(v1,v2) {*(v1)= *(v2); *(v1+1)= *(v2+1); *(v1+2)= *(v2+2);}
|
||||
#define VECCOPY2D(v1,v2) {*(v1)= *(v2); *(v1+1)= *(v2+1);}
|
||||
|
|
|
@ -32,6 +32,9 @@ set(INC
|
|||
../gpu
|
||||
../../../intern/ghost
|
||||
../../../intern/guardedalloc
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${ZLIB_INCLUDE_DIRS}
|
||||
${FREETYPE_INCLUDE_DIRS}
|
||||
)
|
||||
|
@ -134,12 +137,12 @@ set(SRC
|
|||
)
|
||||
|
||||
if(WITH_BINRELOC)
|
||||
list(APPEND INC_SYS "${BINRELOC_INC}")
|
||||
add_definitions(-DWITH_BINRELOC)
|
||||
list(APPEND INC "${BINRELOC_INC}")
|
||||
endif()
|
||||
|
||||
if(WITH_OPENMP)
|
||||
add_definitions(-DPARALLEL=1)
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_blenlib "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_blenlib "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -114,7 +114,7 @@ MINLINE float shell_angle_to_dist(const float angle)
|
|||
/* used for zoom values*/
|
||||
MINLINE float power_of_2(float val)
|
||||
{
|
||||
return (float)pow(2.0, ceil(log((double)val) / log(2.0)));
|
||||
return (float)pow(2.0, ceil(log((double)val) / M_LN2));
|
||||
}
|
||||
|
||||
MINLINE float minf(float a, float b)
|
||||
|
|
|
@ -1809,6 +1809,80 @@ void interp_cubic_v3(float x[3], float v[3], const float x1[3], const float v1[3
|
|||
v[2]= 3*a[2]*t2 + 2*b[2]*t + v1[2];
|
||||
}
|
||||
|
||||
/* unfortunately internal calculations have to be done at double precision to achieve correct/stable results. */
|
||||
|
||||
#define IS_ZERO(x) ((x>(-DBL_EPSILON) && x<DBL_EPSILON) ? 1 : 0)
|
||||
|
||||
/* Barycentric reverse */
|
||||
void resolve_tri_uv(float uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2])
|
||||
{
|
||||
/* find UV such that
|
||||
t= u*t0 + v*t1 + (1-u-v)*t2
|
||||
u*(t0-t2) + v*(t1-t2)= t-t2 */
|
||||
const double a= st0[0]-st2[0], b= st1[0]-st2[0];
|
||||
const double c= st0[1]-st2[1], d= st1[1]-st2[1];
|
||||
const double det= a*d - c*b;
|
||||
|
||||
if(IS_ZERO(det)==0) { /* det should never be zero since the determinant is the signed ST area of the triangle. */
|
||||
const double x[]= {st[0]-st2[0], st[1]-st2[1]};
|
||||
|
||||
uv[0]= (float)((d*x[0] - b*x[1])/det);
|
||||
uv[1]= (float)(((-c)*x[0] + a*x[1])/det);
|
||||
} else zero_v2(uv);
|
||||
}
|
||||
|
||||
/* bilinear reverse */
|
||||
void resolve_quad_uv(float uv[2], const float st[2], const float st0[2], const float st1[2], const float st2[2], const float st3[2])
|
||||
{
|
||||
const double signed_area= (st0[0]*st1[1] - st0[1]*st1[0]) + (st1[0]*st2[1] - st1[1]*st2[0]) +
|
||||
(st2[0]*st3[1] - st2[1]*st3[0]) + (st3[0]*st0[1] - st3[1]*st0[0]);
|
||||
|
||||
/* X is 2D cross product (determinant)
|
||||
A= (p0-p) X (p0-p3)*/
|
||||
const double a= (st0[0]-st[0])*(st0[1]-st3[1]) - (st0[1]-st[1])*(st0[0]-st3[0]);
|
||||
|
||||
/* B= ( (p0-p) X (p1-p2) + (p1-p) X (p0-p3) ) / 2 */
|
||||
const double b= 0.5 * ( ((st0[0]-st[0])*(st1[1]-st2[1]) - (st0[1]-st[1])*(st1[0]-st2[0])) +
|
||||
((st1[0]-st[0])*(st0[1]-st3[1]) - (st1[1]-st[1])*(st0[0]-st3[0])) );
|
||||
|
||||
/* C = (p1-p) X (p1-p2) */
|
||||
const double fC= (st1[0]-st[0])*(st1[1]-st2[1]) - (st1[1]-st[1])*(st1[0]-st2[0]);
|
||||
const double denom= a - 2*b + fC;
|
||||
|
||||
// clear outputs
|
||||
zero_v2(uv);
|
||||
|
||||
if(IS_ZERO(denom)!=0) {
|
||||
const double fDen= a-fC;
|
||||
if(IS_ZERO(fDen)==0)
|
||||
uv[0]= (float)(a / fDen);
|
||||
} else {
|
||||
const double desc_sq= b*b - a*fC;
|
||||
const double desc= sqrt(desc_sq<0.0?0.0:desc_sq);
|
||||
const double s= signed_area>0 ? (-1.0) : 1.0;
|
||||
|
||||
uv[0]= (float)(( (a-b) + s * desc ) / denom);
|
||||
}
|
||||
|
||||
/* find UV such that
|
||||
fST = (1-u)(1-v)*ST0 + u*(1-v)*ST1 + u*v*ST2 + (1-u)*v*ST3 */
|
||||
{
|
||||
const double denom_s= (1-uv[0])*(st0[0]-st3[0]) + uv[0]*(st1[0]-st2[0]);
|
||||
const double denom_t= (1-uv[0])*(st0[1]-st3[1]) + uv[0]*(st1[1]-st2[1]);
|
||||
int i= 0; double denom= denom_s;
|
||||
|
||||
if(fabs(denom_s)<fabs(denom_t)) {
|
||||
i= 1;
|
||||
denom=denom_t;
|
||||
}
|
||||
|
||||
if(IS_ZERO(denom)==0)
|
||||
uv[1]= (float) (( (1-uv[0])*(st0[i]-st[i]) + uv[0]*(st1[i]-st[i]) ) / denom);
|
||||
}
|
||||
}
|
||||
|
||||
#undef IS_ZERO
|
||||
|
||||
/***************************** View & Projection *****************************/
|
||||
|
||||
void orthographic_m4(float matrix[][4], const float left, const float right, const float bottom, const float top, const float nearClip, const float farClip)
|
||||
|
|
|
@ -102,6 +102,21 @@ MINLINE void swap_v4_v4(float a[4], float b[4])
|
|||
|
||||
/********************************* Arithmetic ********************************/
|
||||
|
||||
MINLINE void add_v3_fl(float r[3], float f)
|
||||
{
|
||||
r[0] += f;
|
||||
r[1] += f;
|
||||
r[2] += f;
|
||||
}
|
||||
|
||||
MINLINE void add_v4_fl(float r[4], float f)
|
||||
{
|
||||
r[0] += f;
|
||||
r[1] += f;
|
||||
r[2] += f;
|
||||
r[3] += f;
|
||||
}
|
||||
|
||||
MINLINE void add_v2_v2(float *r, const float *a)
|
||||
{
|
||||
r[0] += a[0];
|
||||
|
|
|
@ -153,7 +153,7 @@ void BLI_stringenc(char *string, const char *head, const char *tail, unsigned sh
|
|||
int BLI_split_name_num(char *left, int *nr, const char *name, const char delim)
|
||||
{
|
||||
int a;
|
||||
|
||||
|
||||
*nr= 0;
|
||||
a= strlen(name);
|
||||
memcpy(left, name, (a + 1) * sizeof(char));
|
||||
|
@ -216,13 +216,13 @@ int BLI_uniquename_cb(int (*unique_check)(void *, const char *), void *arg, cons
|
|||
int number;
|
||||
int len= BLI_split_name_num(left, &number, name, delim);
|
||||
do {
|
||||
int newlen= BLI_snprintf(tempname, name_len, "%s%c%03d", left, delim, number);
|
||||
int newlen= BLI_snprintf(tempname, name_len, "%s%c%03d", left, delim, ++number);
|
||||
if(newlen >= name_len) {
|
||||
len -= ((newlen + 1) - name_len);
|
||||
if(len < 0) len= number= 0;
|
||||
left[len]= '\0';
|
||||
}
|
||||
} while(number++, unique_check(arg, tempname));
|
||||
} while(unique_check(arg, tempname));
|
||||
|
||||
BLI_strncpy(name, tempname, name_len);
|
||||
|
||||
|
|
|
@ -32,6 +32,9 @@ set(INC
|
|||
../makesrna
|
||||
../render/extern/include
|
||||
../../../intern/guardedalloc
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
${ZLIB_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
|
@ -55,4 +58,4 @@ if(WITH_BUILDINFO)
|
|||
add_definitions(-DNAN_BUILDINFO)
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_blenloader "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_blenloader "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
|
@ -1736,6 +1736,12 @@ static void direct_link_fmodifiers(FileData *fd, ListBase *list)
|
|||
FMod_Generator *data= (FMod_Generator *)fcm->data;
|
||||
|
||||
data->coefficients= newdataadr(fd, data->coefficients);
|
||||
|
||||
if(fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
|
||||
unsigned int a;
|
||||
for(a = 0; a < data->arraysize; a++)
|
||||
SWITCH_INT(data->coefficients[a]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case FMODIFIER_TYPE_ENVELOPE:
|
||||
|
@ -2087,7 +2093,7 @@ static void lib_nodetree_do_versions_group(bNodeTree *ntree)
|
|||
for (node=ntree->nodes.first; node; node=node->next) {
|
||||
if (node->type==NODE_GROUP) {
|
||||
bNodeTree *ngroup= (bNodeTree*)node->id;
|
||||
if (ngroup->flag & NTREE_DO_VERSIONS)
|
||||
if (ngroup && (ngroup->flag & NTREE_DO_VERSIONS))
|
||||
lib_node_do_versions_group(node);
|
||||
}
|
||||
}
|
||||
|
@ -3837,26 +3843,10 @@ static void lib_link_object(FileData *fd, Main *main)
|
|||
|
||||
if(smd && smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain)
|
||||
{
|
||||
smd->domain->coll_group = newlibadr_us(fd, ob->id.lib, smd->domain->coll_group);
|
||||
smd->domain->eff_group = newlibadr_us(fd, ob->id.lib, smd->domain->eff_group);
|
||||
smd->domain->fluid_group = newlibadr_us(fd, ob->id.lib, smd->domain->fluid_group);
|
||||
|
||||
smd->domain->effector_weights->group = newlibadr(fd, ob->id.lib, smd->domain->effector_weights->group);
|
||||
|
||||
smd->domain->flags |= MOD_SMOKE_FILE_LOAD; /* flag for refreshing the simulation after loading */
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
|
||||
|
||||
if(clmd)
|
||||
{
|
||||
clmd->sim_parms->effector_weights->group = newlibadr(fd, ob->id.lib, clmd->sim_parms->effector_weights->group);
|
||||
clmd->coll_parms->group= newlibadr(fd, ob->id.lib, clmd->coll_parms->group);
|
||||
}
|
||||
}
|
||||
|
||||
/* texture field */
|
||||
if(ob->pd)
|
||||
lib_link_partdeflect(fd, &ob->id, ob->pd);
|
||||
|
@ -5652,11 +5642,10 @@ static BHead *read_data_into_oldnewmap(FileData *fd, BHead *bhead, const char *a
|
|||
while(bhead && bhead->code==DATA) {
|
||||
void *data;
|
||||
#if 0
|
||||
/* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded malloc errors */
|
||||
/* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded malloc errors */
|
||||
short *sp= fd->filesdna->structs[bhead->SDNAnr];
|
||||
char *allocname = fd->filesdna->types[ sp[0] ];
|
||||
char *tmp= malloc(100);
|
||||
|
||||
allocname = fd->filesdna->types[ sp[0] ];
|
||||
strcpy(tmp, allocname);
|
||||
data= read_struct(fd, bhead, tmp);
|
||||
#else
|
||||
|
@ -6274,7 +6263,7 @@ static void area_add_header_region(ScrArea *sa, ListBase *lb)
|
|||
|
||||
BLI_addtail(lb, ar);
|
||||
ar->regiontype= RGN_TYPE_HEADER;
|
||||
if(sa->headertype==1)
|
||||
if(sa->headertype==HEADERDOWN)
|
||||
ar->alignment= RGN_ALIGN_BOTTOM;
|
||||
else
|
||||
ar->alignment= RGN_ALIGN_TOP;
|
||||
|
@ -12717,7 +12706,6 @@ static int object_in_any_scene(Main *mainvar, Object *ob)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* when *lib set, it also does objects that were in the appended group */
|
||||
static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const short idcode, const short is_link)
|
||||
{
|
||||
Object *ob;
|
||||
|
@ -12752,8 +12740,14 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const
|
|||
/* when appending, make sure any indirectly loaded objects
|
||||
* get a base else they cant be accessed at all [#27437] */
|
||||
if(ob->id.us==1 && is_link==FALSE && ob->id.lib==lib) {
|
||||
if(object_in_any_scene(mainvar, ob)==0) {
|
||||
do_it= 1;
|
||||
|
||||
/* we may be appending from a scene where we already
|
||||
* have a linked object which is not in any scene [#27616] */
|
||||
if((ob->id.flag & LIB_PRE_EXISTING)==0) {
|
||||
|
||||
if(object_in_any_scene(mainvar, ob)==0) {
|
||||
do_it= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12774,7 +12768,6 @@ static void give_base_to_objects(Main *mainvar, Scene *sce, Library *lib, const
|
|||
}
|
||||
}
|
||||
|
||||
/* when *lib set, it also does objects that were in the appended group */
|
||||
static void give_base_to_groups(Main *mainvar, Scene *scene)
|
||||
{
|
||||
Group *group;
|
||||
|
|
|
@ -2520,6 +2520,41 @@ static int write_file_handle(Main *mainvar, int handle, MemFile *compare, MemFil
|
|||
return endwrite(wd);
|
||||
}
|
||||
|
||||
/* do reverse file history: .blend1 -> .blend2, .blend -> .blend1 */
|
||||
/* return: success(0), failure(1) */
|
||||
static int do_history(const char *name, ReportList *reports)
|
||||
{
|
||||
char tempname1[FILE_MAXDIR+FILE_MAXFILE], tempname2[FILE_MAXDIR+FILE_MAXFILE];
|
||||
int hisnr= U.versions;
|
||||
|
||||
if(U.versions==0) return 0;
|
||||
if(strlen(name)<2) {
|
||||
BKE_report(reports, RPT_ERROR, "Unable to make version backup: filename too short");
|
||||
return 1;
|
||||
}
|
||||
|
||||
while(hisnr > 1) {
|
||||
BLI_snprintf(tempname1, sizeof(tempname1), "%s%d", name, hisnr-1);
|
||||
BLI_snprintf(tempname2, sizeof(tempname2), "%s%d", name, hisnr);
|
||||
|
||||
if(BLI_rename(tempname1, tempname2)) {
|
||||
BKE_report(reports, RPT_ERROR, "Unable to make version backup");
|
||||
return 1;
|
||||
}
|
||||
hisnr--;
|
||||
}
|
||||
|
||||
/* is needed when hisnr==1 */
|
||||
BLI_snprintf(tempname1, sizeof(tempname1), "%s%d", name, hisnr);
|
||||
|
||||
if(BLI_rename(name, tempname1)) {
|
||||
BKE_report(reports, RPT_ERROR, "Unable to make version backup");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* return: success (1) */
|
||||
int BLO_write_file(Main *mainvar, const char *filepath, int write_flags, ReportList *reports, int *thumb)
|
||||
{
|
||||
|
@ -2571,48 +2606,55 @@ int BLO_write_file(Main *mainvar, const char *filepath, int write_flags, ReportL
|
|||
err= write_file_handle(mainvar, file, NULL,NULL, write_user_block, write_flags, thumb);
|
||||
close(file);
|
||||
|
||||
/* rename/compress */
|
||||
if(!err) {
|
||||
if(write_flags & G_FILE_COMPRESS) {
|
||||
/* compressed files have the same ending as regular files... only from 2.4!!! */
|
||||
char gzname[FILE_MAXDIR+FILE_MAXFILE+4];
|
||||
int ret;
|
||||
|
||||
/* first write compressed to separate @.gz */
|
||||
BLI_snprintf(gzname, sizeof(gzname), "%s@.gz", filepath);
|
||||
ret = BLI_gzip(tempname, gzname);
|
||||
|
||||
if(0==ret) {
|
||||
/* now rename to real file name, and delete temp @ file too */
|
||||
if(BLI_rename(gzname, filepath) != 0) {
|
||||
BKE_report(reports, RPT_ERROR, "Can't change old file. File saved with @.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
BLI_delete(tempname, 0, 0);
|
||||
}
|
||||
else if(-1==ret) {
|
||||
BKE_report(reports, RPT_ERROR, "Failed opening .gz file.");
|
||||
return 0;
|
||||
}
|
||||
else if(-2==ret) {
|
||||
BKE_report(reports, RPT_ERROR, "Failed opening .blend file for compression.");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if(BLI_rename(tempname, filepath) != 0) {
|
||||
BKE_report(reports, RPT_ERROR, "Can't change old file. File saved with @");
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
if (err) {
|
||||
BKE_report(reports, RPT_ERROR, strerror(errno));
|
||||
remove(tempname);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* file save to temporary file was successful */
|
||||
/* now do reverse file history (move .blend1 -> .blend2, .blend -> .blend1) */
|
||||
if (write_flags & G_FILE_HISTORY) {
|
||||
int err_hist = do_history(filepath, reports);
|
||||
if (err_hist) {
|
||||
BKE_report(reports, RPT_ERROR, "Version backup failed. File saved with @");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(write_flags & G_FILE_COMPRESS) {
|
||||
/* compressed files have the same ending as regular files... only from 2.4!!! */
|
||||
char gzname[FILE_MAXDIR+FILE_MAXFILE+4];
|
||||
int ret;
|
||||
|
||||
/* first write compressed to separate @.gz */
|
||||
BLI_snprintf(gzname, sizeof(gzname), "%s@.gz", filepath);
|
||||
ret = BLI_gzip(tempname, gzname);
|
||||
|
||||
if(0==ret) {
|
||||
/* now rename to real file name, and delete temp @ file too */
|
||||
if(BLI_rename(gzname, filepath) != 0) {
|
||||
BKE_report(reports, RPT_ERROR, "Can't change old file. File saved with @.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
BLI_delete(tempname, 0, 0);
|
||||
}
|
||||
else if(-1==ret) {
|
||||
BKE_report(reports, RPT_ERROR, "Failed opening .gz file.");
|
||||
return 0;
|
||||
}
|
||||
else if(-2==ret) {
|
||||
BKE_report(reports, RPT_ERROR, "Failed opening .blend file for compression.");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if(BLI_rename(tempname, filepath) != 0) {
|
||||
BKE_report(reports, RPT_ERROR, "Can't change old file. File saved with @");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,10 @@ set(INC
|
|||
../../../intern/guardedalloc
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
)
|
||||
|
||||
set(SRC
|
||||
intern/pluginapi.c
|
||||
|
||||
|
@ -46,8 +50,8 @@ set(SRC
|
|||
)
|
||||
|
||||
if(WITH_CODEC_QUICKTIME)
|
||||
list(APPEND INC ${QUICKTIME_INC})
|
||||
list(APPEND INC_SYS ${QUICKTIME_INC})
|
||||
add_definitions(-DWITH_QUICKTIME)
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_blenpluginapi "${SRC}" "${INC}")
|
||||
blender_add_lib(bf_blenpluginapi "${SRC}" "${INC}" "${INC_SYS}")
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue