Merge branch 'master' into blender2.8
This commit is contained in:
@@ -50,9 +50,9 @@ set(OPENVDB_EXTRA_ARGS
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
#Namespaces seem to be buggy and cause linker erorrs due to things not
|
||||
#being in the correct namespace
|
||||
#needs to link pthreads due to it being a blosc dependency
|
||||
# Namespaces seem to be buggy and cause linker errors due to things not
|
||||
# being in the correct namespace
|
||||
# needs to link pthreads due to it being a blosc dependency
|
||||
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
||||
-DOPENEXR_NAMESPACE_VERSIONING=OFF
|
||||
-DEXTRA_LIBS:FILEPATH=${LIBDIR}/pthreads/lib/pthreadVC2.lib
|
||||
|
||||
@@ -142,7 +142,7 @@ if(MSVC)
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/select${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/select${PYTHON_POSTFIX}.pyd
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/unicodedata${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/unicodedata${PYTHON_POSTFIX}.pyd
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/winsound${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/winsound${PYTHON_POSTFIX}.pyd
|
||||
#xxlimited is an example extention module, we don't need to ship it and debug doesn't build it
|
||||
#xxlimited is an example extension module, we don't need to ship it and debug doesn't build it
|
||||
#leaving it commented out, so I won't get confused again with the next update.
|
||||
#COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/xxlimited${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/xxlimited${PYTHON_POSTFIX}.pyd
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libssl-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libssl-1_1${SSL_POSTFIX}.dll
|
||||
|
||||
@@ -1200,7 +1200,7 @@ compile_Boost() {
|
||||
if [ ! -d $_inst ]; then
|
||||
INFO "Building Boost-$BOOST_VERSION"
|
||||
|
||||
# Rebuild dependecies as well!
|
||||
# Rebuild dependencies as well!
|
||||
OIIO_FORCE_BUILD=true
|
||||
OIIO_FORCE_REBUILD=true
|
||||
OSL_FORCE_BUILD=true
|
||||
@@ -1393,7 +1393,7 @@ compile_ILMBASE() {
|
||||
if [ ! -d $_openexr_inst ]; then
|
||||
INFO "Building ILMBase-$ILMBASE_VERSION"
|
||||
|
||||
# Rebuild dependecies as well!
|
||||
# Rebuild dependencies as well!
|
||||
OPENEXR_FORCE_BUILD=true
|
||||
OPENEXR_FORCE_REBUILD=true
|
||||
|
||||
@@ -1489,7 +1489,7 @@ compile_OPENEXR() {
|
||||
if [ ! -d $_inst ]; then
|
||||
INFO "Building OpenEXR-$OPENEXR_VERSION"
|
||||
|
||||
# Rebuild dependecies as well!
|
||||
# Rebuild dependencies as well!
|
||||
OIIO_FORCE_BUILD=true
|
||||
OIIO_FORCE_REBUILD=true
|
||||
|
||||
@@ -1603,7 +1603,7 @@ compile_OIIO() {
|
||||
if [ ! -d $_inst ]; then
|
||||
INFO "Building OpenImageIO-$OIIO_VERSION"
|
||||
|
||||
# Rebuild dependecies as well!
|
||||
# Rebuild dependencies as well!
|
||||
OSL_FORCE_BUILD=true
|
||||
OSL_FORCE_REBUILD=true
|
||||
|
||||
@@ -1745,7 +1745,7 @@ compile_LLVM() {
|
||||
if [ ! -d $_inst ]; then
|
||||
INFO "Building LLVM-$LLVM_VERSION (CLANG included!)"
|
||||
|
||||
# Rebuild dependecies as well!
|
||||
# Rebuild dependencies as well!
|
||||
OSL_FORCE_BUILD=true
|
||||
OSL_FORCE_REBUILD=true
|
||||
|
||||
@@ -2071,7 +2071,7 @@ compile_BLOSC() {
|
||||
if [ ! -d $_inst ]; then
|
||||
INFO "Building Blosc-$OPENVDB_BLOSC_VERSION"
|
||||
|
||||
# Rebuild dependecies as well!
|
||||
# Rebuild dependencies as well!
|
||||
OPENVDB_FORCE_BUILD=true
|
||||
OPENVDB_FORCE_REBUILD=true
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ SET(_python_SEARCH_DIRS
|
||||
"/opt/lib/python-${PYTHON_VERSION}"
|
||||
)
|
||||
|
||||
# only search for the dirs if we havn't already
|
||||
# only search for the dirs if we haven't already
|
||||
IF((NOT _IS_INC_DEF) OR (NOT _IS_INC_CONF_DEF) OR (NOT _IS_LIB_DEF) OR (NOT _IS_LIB_PATH_DEF))
|
||||
SET(_PYTHON_ABI_FLAGS_TEST
|
||||
"m;mu;u; " # release
|
||||
|
||||
@@ -130,7 +130,7 @@ def function_parm_wash_tokens(parm):
|
||||
)
|
||||
|
||||
"""
|
||||
Return tolens without trailing commads and 'const'
|
||||
Return tolens without trailing commands and 'const'
|
||||
"""
|
||||
|
||||
tokens = [t for t in parm.get_tokens()]
|
||||
|
||||
@@ -285,7 +285,7 @@ def main():
|
||||
ignore_used = [False] * len(IGNORE)
|
||||
|
||||
# now check on files not accounted for.
|
||||
print("\nC/C++ Files CMake doesnt know about...")
|
||||
print("\nC/C++ Files CMake does not know about...")
|
||||
for cf in sorted(source_list(SOURCE_DIR, is_c)):
|
||||
if not is_ignore(cf, ignore_used):
|
||||
if cf not in global_c:
|
||||
@@ -302,7 +302,7 @@ def main():
|
||||
print("bad_c: ", cf)
|
||||
'''
|
||||
|
||||
print("\nC/C++ Headers CMake doesnt know about...")
|
||||
print("\nC/C++ Headers CMake does not know about...")
|
||||
for hf in sorted(source_list(SOURCE_DIR, is_c_header)):
|
||||
if not is_ignore(hf, ignore_used):
|
||||
if hf not in global_h:
|
||||
|
||||
@@ -71,7 +71,7 @@ def create_nb_project_main():
|
||||
if (includes, defines) == (None, None):
|
||||
return
|
||||
|
||||
# for some reason it doesnt give all internal includes
|
||||
# for some reason it doesn't give all internal includes
|
||||
includes = list(set(includes) | set(dirname(f) for f in files if is_c_header(f)))
|
||||
includes.sort()
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ def create_qtc_project_main(name):
|
||||
if (includes, defines) == (None, None):
|
||||
return
|
||||
|
||||
# for some reason it doesnt give all internal includes
|
||||
# for some reason it doesn't give all internal includes
|
||||
includes = list(set(includes) | set(os.path.dirname(f)
|
||||
for f in files_rel if is_c_header(f)))
|
||||
includes.sort()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Turn everything ON thats expected for an official release builds.
|
||||
# Turn everything ON that's expected for an official release builds.
|
||||
#
|
||||
# Example usage:
|
||||
# cmake -C../blender/build_files/cmake/config/blender_full.cmake ../blender
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
set(WITH_HEADLESS ON CACHE BOOL "" FORCE)
|
||||
|
||||
# disable audio, its possible some devs may want this but for now disable
|
||||
# so the python module doesnt hold the audio device and loads quickly.
|
||||
# so the python module doesn't hold the audio device and loads quickly.
|
||||
set(WITH_AUDASPACE OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_FFTW3 OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Turn everything ON thats expected for an official release builds.
|
||||
# Turn everything ON that's expected for an official release builds.
|
||||
#
|
||||
# Example usage:
|
||||
# cmake -C../blender/build_files/cmake/config/blender_release.cmake ../blender
|
||||
|
||||
@@ -13,7 +13,7 @@ set(WITH_INSTALL_PORTABLE OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_PYTHON_INSTALL OFF CACHE BOOL "" FORCE)
|
||||
|
||||
# disable audio, its possible some devs may want this but for now disable
|
||||
# so the python module doesnt hold the audio device and loads quickly.
|
||||
# so the python module doesn't hold the audio device and loads quickly.
|
||||
set(WITH_AUDASPACE OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_FFTW3 OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
||||
|
||||
@@ -199,7 +199,7 @@ endfunction()
|
||||
# Support per-target CMake flags
|
||||
# Read from: CMAKE_C_FLAGS_**** (made upper case) when set.
|
||||
#
|
||||
# 'name' should alway match the target name,
|
||||
# 'name' should always match the target name,
|
||||
# use this macro before add_library or add_executable.
|
||||
#
|
||||
# Optionally takes an arg passed to set(), eg PARENT_SCOPE.
|
||||
@@ -509,7 +509,7 @@ function(setup_liblinks
|
||||
target_link_libraries(${target} ${GFLAGS_LIBRARIES})
|
||||
endif()
|
||||
|
||||
# We put CLEW and CUEW here because OPENSUBDIV_LIBRARIES dpeends on them..
|
||||
# We put CLEW and CUEW here because OPENSUBDIV_LIBRARIES depends on them..
|
||||
if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
|
||||
target_link_libraries(${target} "extern_clew")
|
||||
if(WITH_CUDA_DYNLOAD)
|
||||
|
||||
@@ -410,7 +410,7 @@ if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
|
||||
# Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
|
||||
endif()
|
||||
# Get rid of eventually clashes, we export some symbols explicite as local
|
||||
# Get rid of eventually clashes, we export some symbols explicitly as local
|
||||
set(PLATFORM_LINKFLAGS
|
||||
"${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'"
|
||||
)
|
||||
|
||||
@@ -83,7 +83,7 @@ if(${XCODE_VERSION} VERSION_LESS 4.3)
|
||||
# use guaranteed existing sdk
|
||||
set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk CACHE PATH "" FORCE)
|
||||
else()
|
||||
# note: xcode-select path could be ambigous,
|
||||
# note: xcode-select path could be ambiguous,
|
||||
# cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
|
||||
# so i use a selfcomposed bundlepath here
|
||||
set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform)
|
||||
@@ -97,7 +97,7 @@ else()
|
||||
endif()
|
||||
|
||||
if(OSX_SYSTEM MATCHES 10.9)
|
||||
# make sure syslibs and headers are looked up in sdk ( expecially for 10.9 openGL atm. )
|
||||
# make sure syslibs and headers are looked up in sdk ( especially for 10.9 openGL atm. )
|
||||
set(CMAKE_FIND_ROOT_PATH ${CMAKE_OSX_SYSROOT})
|
||||
endif()
|
||||
|
||||
|
||||
@@ -305,7 +305,7 @@ if(WITH_BOOST)
|
||||
if(Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU)
|
||||
find_package(IcuLinux)
|
||||
endif()
|
||||
mark_as_advanced(Boost_DIR) # why doesnt boost do this?
|
||||
mark_as_advanced(Boost_DIR) # why doesn't boost do this?
|
||||
endif()
|
||||
|
||||
set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
|
||||
|
||||
@@ -63,7 +63,7 @@ echo "OK"
|
||||
|
||||
# Create checksum file
|
||||
cd "$BASE_DIR"
|
||||
echo -n "Createing checksum: \"$BASE_DIR/$TARBALL.md5sum\" ..."
|
||||
echo -n "Creating checksum: \"$BASE_DIR/$TARBALL.md5sum\" ..."
|
||||
md5sum "$TARBALL" > "$TARBALL.md5sum"
|
||||
echo "OK"
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ if NOT EXIST %BUILD_VS_LIBDIR% (
|
||||
:RETRY
|
||||
"%SVN%" checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/%BUILD_VS_SVNDIR% %BUILD_VS_LIBDIR%
|
||||
if errorlevel 1 (
|
||||
set /p LibRetry= "Error during donwload, retry? y/n"
|
||||
set /p LibRetry= "Error during download, retry? y/n"
|
||||
if /I "!LibRetry!"=="Y" (
|
||||
cd %BUILD_VS_LIBDIR%
|
||||
"%SVN%" cleanup
|
||||
|
||||
@@ -64,6 +64,6 @@ exit /b 1
|
||||
|
||||
:DetectionComplete
|
||||
if NOT "%verbose%" == "" (
|
||||
echo Visual Studio %BUILD_VS_YEAR% Detected successfuly
|
||||
echo Visual Studio %BUILD_VS_YEAR% Detected successfully
|
||||
)
|
||||
exit /b 0
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
REM find all dependencies and set the corresponding environement variables.
|
||||
REM find all dependencies and set the corresponding environment variables.
|
||||
for %%X in (svn.exe) do (set SVN=%%~$PATH:X)
|
||||
for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X)
|
||||
for %%X in (git.exe) do (set GIT=%%~$PATH:X)
|
||||
if NOT "%verbose%" == "" (
|
||||
echo svn : %SVN%
|
||||
echo cmake : %CMAKE%
|
||||
echo git : %GIT%
|
||||
echo svn : "%SVN%"
|
||||
echo cmake : "%CMAKE%"
|
||||
echo git : "%GIT%"
|
||||
)
|
||||
if "%CMAKE%" == "" (
|
||||
echo Cmake not found in path, required for building, exiting...
|
||||
|
||||
@@ -16,7 +16,7 @@ echo.
|
||||
echo Configuration options
|
||||
echo - verbose ^(enable diagnostic output during configuration^)
|
||||
echo - with_tests ^(enable building unit tests^)
|
||||
echo - noge ^(disable building game enginge and player^)
|
||||
echo - noge ^(disable building game engine and player^)
|
||||
echo - debug ^(Build an unoptimized debuggable build^)
|
||||
echo - packagename [newname] ^(override default cpack package name^)
|
||||
echo - buildir [newdir] ^(override default build folder^)
|
||||
|
||||
@@ -3,7 +3,7 @@ Persistent Handler Example
|
||||
++++++++++++++++++++++++++
|
||||
|
||||
By default handlers are freed when loading new files, in some cases you may
|
||||
wan't the handler stay running across multiple files (when the handler is
|
||||
want the handler stay running across multiple files (when the handler is
|
||||
part of an add-on for example).
|
||||
|
||||
For this the :data:`bpy.app.handlers.persistent` decorator needs to be used.
|
||||
|
||||
@@ -53,7 +53,7 @@ Here are some characteristics ID Data-Blocks share.
|
||||
Simple Data Access
|
||||
------------------
|
||||
|
||||
Lets start with a simple case, say you want a python script to adjust the objects location.
|
||||
Lets start with a simple case, say you want a python script to adjust the object's location.
|
||||
|
||||
Start by finding this setting in the interface ``Properties Window -> Object -> Transform -> Location``
|
||||
|
||||
|
||||
@@ -340,11 +340,11 @@ if(WITH_CYCLES_CUDA_BINARIES)
|
||||
set(CUDA_VERSION "${CUDA_VERSION_MAJOR}${CUDA_VERSION_MINOR}")
|
||||
|
||||
# warn for other versions
|
||||
if(CUDA_VERSION MATCHES "80" OR CUDA_VERSION MATCHES "90")
|
||||
if(CUDA_VERSION MATCHES "90" OR CUDA_VERSION MATCHES "91")
|
||||
else()
|
||||
message(WARNING
|
||||
"CUDA version ${CUDA_VERSION_MAJOR}.${CUDA_VERSION_MINOR} detected, "
|
||||
"build may succeed but only CUDA 8.0 is officially supported")
|
||||
"build may succeed but only CUDA 9.0 and 9.1 are officially supported")
|
||||
endif()
|
||||
|
||||
# build for each arch
|
||||
|
||||
@@ -155,7 +155,7 @@ class RandomizeLocRotSize(Operator):
|
||||
)
|
||||
|
||||
'''scale_min: FloatProperty(
|
||||
name="Minimun Scale Factor",
|
||||
name="Minimum Scale Factor",
|
||||
description="Lowest scale percentage possible",
|
||||
min=-1.0, max=1.0, precision=3,
|
||||
default=0.15,
|
||||
|
||||
@@ -856,7 +856,7 @@ def main(context,
|
||||
projectVecs.append(averageVec.normalized())
|
||||
|
||||
# Get the next vec!
|
||||
# Pick the face thats most different to all existing angles :)
|
||||
# Pick the face that's most different to all existing angles :)
|
||||
mostUniqueAngle = 1.0 # 1.0 is 0d. no difference.
|
||||
mostUniqueIndex = 0 # dummy
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ class OBJECT_PT_collections(ObjectButtonsPanel, Panel):
|
||||
|
||||
obj_name = obj.name
|
||||
for collection in bpy.data.collections:
|
||||
# XXX this is slow and stupid!, we need 2 checks, one thats fast
|
||||
# XXX this is slow and stupid!, we need 2 checks, one that's fast
|
||||
# and another that we can be sure its not a name collision
|
||||
# from linked library data
|
||||
collection_objects = collection.objects
|
||||
|
||||
@@ -1085,7 +1085,7 @@ class VIEW3D_MT_select_edit_surface(Menu):
|
||||
|
||||
|
||||
class VIEW3D_MT_select_edit_text(Menu):
|
||||
# intentional name mis-match
|
||||
# intentional name mismatch
|
||||
# select menu for 3d-text doesn't make sense
|
||||
bl_label = "Edit"
|
||||
|
||||
|
||||
@@ -246,12 +246,12 @@ void texttool_docs_show(const char *docs)
|
||||
/* Ensure documentation ends with a '\n' */
|
||||
if (docs[len - 1] != '\n') {
|
||||
documentation = MEM_mallocN(len + 2, "Documentation");
|
||||
BLI_strncpy(documentation, docs, len);
|
||||
memcpy(documentation, docs, len);
|
||||
documentation[len++] = '\n';
|
||||
}
|
||||
else {
|
||||
documentation = MEM_mallocN(len + 1, "Documentation");
|
||||
BLI_strncpy(documentation, docs, len);
|
||||
memcpy(documentation, docs, len);
|
||||
}
|
||||
documentation[len] = '\0';
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ static void basic_cache_populate(void *vedata, Object *ob)
|
||||
DRW_object_axis_orthogonal_to_view(ob, flat_axis);
|
||||
|
||||
if (is_flat_object_viewed_from_side) {
|
||||
/* Avoid loosing flat objects when in ortho views (see T56549) */
|
||||
/* Avoid losing flat objects when in ortho views (see T56549) */
|
||||
struct GPUBatch *geom = DRW_cache_object_wire_outline_get(ob);
|
||||
DRW_shgroup_call_object_add(stl->g_data->depth_shgrp, geom, ob);
|
||||
return;
|
||||
|
||||
@@ -95,7 +95,7 @@ int EEVEE_depth_of_field_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *v
|
||||
const float *viewport_size = DRW_viewport_size_get();
|
||||
Camera *cam = (Camera *)camera->data;
|
||||
|
||||
/* Retreive Near and Far distance */
|
||||
/* Retrieve Near and Far distance */
|
||||
effects->dof_near_far[0] = -cam->clipsta;
|
||||
effects->dof_near_far[1] = -cam->clipend;
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@ void EEVEE_effects_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Object
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute Mipmap texel alignement.
|
||||
* Compute Mipmap texel alignment.
|
||||
*/
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
int mip_size[2];
|
||||
|
||||
@@ -323,7 +323,7 @@ static void eevee_draw_background(void *vedata)
|
||||
GPU_framebuffer_bind(dfbl->default_fb);
|
||||
DRW_transform_to_display(stl->effects->final_tx, use_view_settings);
|
||||
|
||||
/* Debug : Ouput buffer to view. */
|
||||
/* Debug : Output buffer to view. */
|
||||
switch (G.debug_value) {
|
||||
case 1:
|
||||
if (txl->maxzbuffer) DRW_transform_to_display(txl->maxzbuffer, use_view_settings);
|
||||
|
||||
@@ -469,7 +469,7 @@ static void eevee_lightbake_create_resources(EEVEE_LightBake *lbake)
|
||||
* by the DRW mutex. */
|
||||
lbake->lcache = eevee->light_cache;
|
||||
|
||||
/* TODO validate irradiance and reflection cache independantly... */
|
||||
/* TODO validate irradiance and reflection cache independently... */
|
||||
if (lbake->lcache != NULL &&
|
||||
!EEVEE_lightcache_validate(lbake->lcache, lbake->cube_len, lbake->ref_cube_res, lbake->grid_len, lbake->irr_size))
|
||||
{
|
||||
@@ -720,7 +720,7 @@ static void eevee_lightbake_render_world_sample(void *ved, void *user_data)
|
||||
Scene *scene_eval = DEG_get_evaluated_scene(lbake->depsgraph);
|
||||
LightCache *lcache = scene_eval->eevee.light_cache;
|
||||
|
||||
/* TODO do this once for the whole bake when we have independant DRWManagers. */
|
||||
/* TODO do this once for the whole bake when we have independent DRWManagers. */
|
||||
eevee_lightbake_cache_create(vedata, lbake);
|
||||
|
||||
EEVEE_lightbake_render_world(sldata, vedata, lbake->rt_fb);
|
||||
@@ -826,7 +826,7 @@ static void eevee_lightbake_render_grid_sample(void *ved, void *user_data)
|
||||
/* Use the previous bounce for rendering this bounce. */
|
||||
SWAP(GPUTexture *, lbake->grid_prev, lcache->grid_tx.tex);
|
||||
|
||||
/* TODO do this once for the whole bake when we have independant DRWManagers.
|
||||
/* TODO do this once for the whole bake when we have independent DRWManagers.
|
||||
* Warning: Some of the things above require this. */
|
||||
eevee_lightbake_cache_create(vedata, lbake);
|
||||
|
||||
@@ -892,7 +892,7 @@ static void eevee_lightbake_render_probe_sample(void *ved, void *user_data)
|
||||
EEVEE_LightProbe *eprobe = lbake->cube;
|
||||
LightProbe *prb = *lbake->probe;
|
||||
|
||||
/* TODO do this once for the whole bake when we have independant DRWManagers. */
|
||||
/* TODO do this once for the whole bake when we have independent DRWManagers. */
|
||||
eevee_lightbake_cache_create(vedata, lbake);
|
||||
|
||||
/* Disable specular lighting when rendering probes to avoid feedback loops (looks bad). */
|
||||
|
||||
@@ -357,7 +357,7 @@ void EEVEE_lightprobes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
}
|
||||
}
|
||||
|
||||
/* Only init the passes usefull for rendering the light cache. */
|
||||
/* Only init the passes useful for rendering the light cache. */
|
||||
void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, GPUTexture *rt_color, GPUTexture *rt_depth)
|
||||
{
|
||||
EEVEE_PassList *psl = vedata->psl;
|
||||
@@ -480,7 +480,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
case GPU_MAT_SUCCESS:
|
||||
grp = DRW_shgroup_material_create(gpumat, psl->probe_background);
|
||||
DRW_shgroup_uniform_float(grp, "backgroundAlpha", &stl->g_data->background_alpha, 1);
|
||||
/* TODO (fclem): remove thoses (need to clean the GLSL files). */
|
||||
/* TODO (fclem): remove those (need to clean the GLSL files). */
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo);
|
||||
@@ -519,7 +519,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_uniform_vec3(grp, "screen_vecs[0]", DRW_viewport_screenvecs_get(), 2);
|
||||
DRW_shgroup_uniform_float_copy(grp, "sphere_size", scene_eval->eevee.gi_cubemap_draw_size * 0.5f);
|
||||
/* TODO (fclem) get rid of thoses UBO. */
|
||||
/* TODO (fclem) get rid of those UBO. */
|
||||
DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
|
||||
}
|
||||
@@ -538,7 +538,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
DRW_shgroup_uniform_vec3(shgrp, "screen_vecs[0]", DRW_viewport_screenvecs_get(), 2);
|
||||
DRW_shgroup_uniform_texture_ref(shgrp, "irradianceGrid", &lcache->grid_tx.tex);
|
||||
DRW_shgroup_uniform_float_copy(shgrp, "sphere_size", scene_eval->eevee.gi_irradiance_draw_size * 0.5f);
|
||||
/* TODO (fclem) get rid of thoses UBO. */
|
||||
/* TODO (fclem) get rid of those UBO. */
|
||||
DRW_shgroup_uniform_block(shgrp, "probe_block", sldata->probe_ubo);
|
||||
DRW_shgroup_uniform_block(shgrp, "planar_block", sldata->planar_ubo);
|
||||
DRW_shgroup_uniform_block(shgrp, "grid_block", sldata->grid_ubo);
|
||||
@@ -907,7 +907,7 @@ static void render_cubemap(
|
||||
|
||||
/* 1 - Render to each cubeface individually.
|
||||
* We do this instead of using geometry shader because a) it's faster,
|
||||
* b) it's easier than fixing the nodetree shaders (for view dependant effects). */
|
||||
* b) it's easier than fixing the nodetree shaders (for view dependent effects). */
|
||||
for (int i = 0; i < 6; ++i) {
|
||||
/* Setup custom matrices */
|
||||
mul_m4_m4m4(matstate.viewmat, cubefacemat[i], posmat);
|
||||
|
||||
@@ -649,7 +649,7 @@ static void eevee_light_setup(Object *ob, EEVEE_Light *evli)
|
||||
80.0f; /* XXX : Empirical, Fit cycles power */
|
||||
if (ELEM(la->area_shape, LA_AREA_DISK, LA_AREA_ELLIPSE)) {
|
||||
evli->lamptype = LAMPTYPE_AREA_ELLIPSE;
|
||||
/* Scale power to account for the lower area of the ellipse compared to the surrouding rectangle. */
|
||||
/* Scale power to account for the lower area of the ellipse compared to the surrounding rectangle. */
|
||||
power *= 4.0f / M_PI;
|
||||
}
|
||||
}
|
||||
@@ -1112,7 +1112,7 @@ void EEVEE_draw_shadows(EEVEE_ViewLayerData *sldata, EEVEE_PassList *psl)
|
||||
/* Render shadow cube */
|
||||
/* Render 6 faces separately: seems to be faster for the general case.
|
||||
* The only time it's more beneficial is when the CPU culling overhead
|
||||
* outweight the instancing overhead. which is rarelly the case. */
|
||||
* outweigh the instancing overhead. which is rarely the case. */
|
||||
for (int j = 0; j < 6; j++) {
|
||||
/* TODO optimize */
|
||||
float tmp[4][4];
|
||||
@@ -1219,7 +1219,7 @@ void EEVEE_draw_shadows(EEVEE_ViewLayerData *sldata, EEVEE_PassList *psl)
|
||||
/* Render shadow cascades */
|
||||
/* Render cascade separately: seems to be faster for the general case.
|
||||
* The only time it's more beneficial is when the CPU culling overhead
|
||||
* outweight the instancing overhead. which is rarelly the case. */
|
||||
* outweigh the instancing overhead. which is rarely the case. */
|
||||
for (int j = 0; j < la->cascade_count; j++) {
|
||||
copy_m4_m4(winmat, evscd->projmat[j]);
|
||||
copy_m4_m4(persmat, evscd->viewprojmat[j]);
|
||||
|
||||
@@ -972,7 +972,7 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
case GPU_MAT_SUCCESS:
|
||||
grp = DRW_shgroup_material_create(gpumat, psl->background_pass);
|
||||
DRW_shgroup_uniform_float(grp, "backgroundAlpha", &stl->g_data->background_alpha, 1);
|
||||
/* TODO (fclem): remove thoses (need to clean the GLSL files). */
|
||||
/* TODO (fclem): remove those (need to clean the GLSL files). */
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo);
|
||||
|
||||
@@ -71,7 +71,7 @@ static void eevee_motion_blur_camera_get_matrix_at_time(
|
||||
|
||||
/* Past matrix */
|
||||
/* FIXME : This is a temporal solution that does not take care of parent animations */
|
||||
/* Recalc Anim manualy */
|
||||
/* Recalc Anim manually */
|
||||
BKE_animsys_evaluate_animdata(draw_ctx->depsgraph, scene, &cam_cpy.id, cam_cpy.adt, time, ADT_RECALC_ALL);
|
||||
BKE_animsys_evaluate_animdata(draw_ctx->depsgraph, scene, &camdata_cpy.id, camdata_cpy.adt, time, ADT_RECALC_ALL);
|
||||
BKE_object_where_is_calc_time(draw_ctx->depsgraph, scene, &cam_cpy, time);
|
||||
|
||||
@@ -431,7 +431,7 @@ typedef struct EEVEE_LampsInfo {
|
||||
struct EEVEE_ShadowCascade shadow_cascade_data[MAX_SHADOW_CASCADE];
|
||||
/* Lights tracking */
|
||||
int new_shadow_id[MAX_LIGHT]; /* To be able to convert old bitfield to new bitfield */
|
||||
struct EEVEE_BoundSphere shadow_bounds[MAX_LIGHT]; /* Tighly packed light bounds */
|
||||
struct EEVEE_BoundSphere shadow_bounds[MAX_LIGHT]; /* Tightly packed light bounds */
|
||||
/* Pointers only. */
|
||||
struct EEVEE_ShadowCasterBuffer *shcaster_frontbuffer;
|
||||
struct EEVEE_ShadowCasterBuffer *shcaster_backbuffer;
|
||||
|
||||
@@ -210,12 +210,12 @@ void EEVEE_screen_raytrace_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *v
|
||||
*
|
||||
* Following Frostbite stochastic SSR.
|
||||
*
|
||||
* - First pass Trace rays accross the depth buffer. The hit position and pdf are
|
||||
* - First pass Trace rays across the depth buffer. The hit position and pdf are
|
||||
* recorded in a RGBA16F render target for each ray (sample).
|
||||
*
|
||||
* - We downsample the previous frame color buffer.
|
||||
*
|
||||
* - For each final pixel, we gather neighboors rays and choose a color buffer
|
||||
* - For each final pixel, we gather neighbors rays and choose a color buffer
|
||||
* mipmap for each ray using its pdf. (filtered importance sampling)
|
||||
* We then evaluate the lighting from the probes and mix the results together.
|
||||
*/
|
||||
|
||||
@@ -397,7 +397,7 @@ void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
|
||||
if (grp) {
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
/* TODO (fclem): remove thoses (need to clean the GLSL files). */
|
||||
/* TODO (fclem): remove those (need to clean the GLSL files). */
|
||||
DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
|
||||
@@ -483,7 +483,7 @@ void EEVEE_volumes_cache_object_add(EEVEE_ViewLayerData *sldata, EEVEE_Data *ved
|
||||
|
||||
BKE_mesh_texspace_get_reference((struct Mesh *)ob->data, NULL, &texcoloc, NULL, &texcosize);
|
||||
|
||||
/* TODO(fclem) remove thoses "unecessary" UBOs */
|
||||
/* TODO(fclem) remove those "unnecessary" UBOs */
|
||||
DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "probe_block", sldata->probe_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "shadow_block", sldata->shadow_ubo);
|
||||
|
||||
@@ -598,7 +598,7 @@ float G1_Smith_GGX(float NX, float a2)
|
||||
/* Using Brian Karis approach and refactoring by NX/NX
|
||||
* this way the (2*NL)*(2*NV) in G = G1(V) * G1(L) gets canceled by the brdf denominator 4*NL*NV
|
||||
* Rcp is done on the whole G later
|
||||
* Note that this is not convenient for the transmition formula */
|
||||
* Note that this is not convenient for the transmission formula */
|
||||
return NX + sqrt(NX * (NX - NX * a2) + a2);
|
||||
/* return 2 / (1 + sqrt(1 + a2 * (1 - NX*NX) / (NX*NX) ) ); /* Reference function */
|
||||
}
|
||||
@@ -626,7 +626,7 @@ void accumulate_light(vec3 light, float fac, inout vec4 accum)
|
||||
accum += vec4(light, 1.0) * min(fac, (1.0 - accum.a));
|
||||
}
|
||||
|
||||
/* ----------- Cone Apperture Approximation --------- */
|
||||
/* ----------- Cone Aperture Approximation --------- */
|
||||
|
||||
/* Return a fitted cone angle given the input roughness */
|
||||
float cone_cosine(float r)
|
||||
|
||||
@@ -29,7 +29,7 @@ uniform sampler2D depthBuffer;
|
||||
#define minmax4(a, b, c, d) max(max(max(a, b), c), d)
|
||||
#endif
|
||||
|
||||
/* On some AMD card / driver conbination, it is needed otherwise,
|
||||
/* On some AMD card / driver combination, it is needed otherwise,
|
||||
* the shader does not write anything. */
|
||||
#if defined(GPU_INTEL) || defined(GPU_ATI)
|
||||
out vec4 fragColor;
|
||||
|
||||
@@ -223,7 +223,7 @@ float light_visibility(LightData ld, vec3 W,
|
||||
vec3 ray_ori = viewPosition;
|
||||
|
||||
float bias = 0.5; /* Constant Bias */
|
||||
bias += 1.0 - abs(dot(viewNormal, ray_dir)); /* Angle dependant bias */
|
||||
bias += 1.0 - abs(dot(viewNormal, ray_dir)); /* Angle dependent bias */
|
||||
bias *= gl_FrontFacing ? data.sh_contact_offset : -data.sh_contact_offset;
|
||||
|
||||
vec3 nor_bias = viewNormal * bias;
|
||||
|
||||
@@ -249,7 +249,7 @@ void CLOSURE_NAME(
|
||||
/* ---------------- SPECULAR ENVIRONMENT LIGHTING ----------------- */
|
||||
/* ---------------------------------------------------------------- */
|
||||
|
||||
/* Accumulate incomming light from all sources until accumulator is full. Then apply Occlusion and BRDF. */
|
||||
/* Accumulate incoming light from all sources until accumulator is full. Then apply Occlusion and BRDF. */
|
||||
#ifdef CLOSURE_GLOSSY
|
||||
vec4 spec_accum = vec4(0.0);
|
||||
#endif
|
||||
@@ -409,7 +409,7 @@ void CLOSURE_NAME(
|
||||
vec2 uv = lut_coords(NV, roughness);
|
||||
vec2 brdf_lut = texture(utilTex, vec3(uv, 1.0)).rg;
|
||||
|
||||
/* This factor is outputed to be used by SSR in order
|
||||
/* This factor is outputted to be used by SSR in order
|
||||
* to match the intensity of the regular reflections. */
|
||||
ssr_spec = F_ibl(f0, brdf_lut);
|
||||
float spec_occlu = specular_occlusion(NV, final_ao, roughness);
|
||||
|
||||
@@ -119,7 +119,7 @@ void prepare_raycast(
|
||||
#define prev_delta times_and_deltas.w
|
||||
|
||||
// #define GROUPED_FETCHES /* is still slower, need to see where is the bottleneck. */
|
||||
/* Return the hit position, and negate the z component (making it positive) if not hit occured. */
|
||||
/* Return the hit position, and negate the z component (making it positive) if not hit occurred. */
|
||||
/* __ray_dir__ is the ray direction premultiplied by it's maximum length */
|
||||
vec3 raycast(
|
||||
int index, vec3 ray_origin, vec3 ray_dir, float thickness, float ray_jitter,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* https://www.ea.com/frostbite/news/physically-based-unified-volumetric-rendering-in-frostbite */
|
||||
|
||||
/* Step 3 : Integrate for each froxel the final amount of light
|
||||
* scattered back to the viewer and the amout of transmittance. */
|
||||
* scattered back to the viewer and the amount of transmittance. */
|
||||
|
||||
uniform sampler3D volumeScattering; /* Result of the scatter step */
|
||||
uniform sampler3D volumeExtinction;
|
||||
|
||||
@@ -424,7 +424,7 @@ void GPENCIL_cache_init(void *vedata)
|
||||
stl->storage->color_type = GPENCIL_COLOR_SOLID;
|
||||
}
|
||||
|
||||
/* drawing buffer pass for drawing the stroke that is beeing drawing by the user. The data
|
||||
/* drawing buffer pass for drawing the stroke that is being drawing by the user. The data
|
||||
* is stored in sbuffer
|
||||
*/
|
||||
psl->drawing_pass = DRW_pass_create(
|
||||
@@ -684,7 +684,7 @@ void GPENCIL_draw_scene(void *ved)
|
||||
const bool playing = stl->storage->is_playing;
|
||||
const bool is_render = stl->storage->is_render;
|
||||
|
||||
/* paper pass to display a confortable area to draw over complex scenes with geometry */
|
||||
/* paper pass to display a comfortable area to draw over complex scenes with geometry */
|
||||
if ((!is_render) && (obact) && (obact->type == OB_GPENCIL)) {
|
||||
if (((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
|
||||
(v3d->gp_flag & V3D_GP_SHOW_PAPER))
|
||||
|
||||
@@ -271,7 +271,7 @@ typedef struct GPENCIL_e_data {
|
||||
typedef struct GpencilBatchCache {
|
||||
/* For normal strokes, a variable number of batch can be needed depending of number of strokes.
|
||||
It could use the stroke number as total size, but when activate the onion skining, the number
|
||||
can change, so the size is changed dinamically.
|
||||
can change, so the size is changed dynamically.
|
||||
*/
|
||||
GPUBatch **batch_stroke;
|
||||
GPUBatch **batch_fill;
|
||||
|
||||
@@ -234,7 +234,7 @@ static float *create_disk_samples(int num_samples, int num_iterations)
|
||||
float phi = (float)dphi * 2.0f * M_PI + it_add;
|
||||
texels[i][0] = cosf(phi);
|
||||
texels[i][1] = sinf(phi);
|
||||
/* This deliberatly distribute more samples
|
||||
/* This deliberately distribute more samples
|
||||
* at the center of the disk (and thus the shadow). */
|
||||
texels[i][2] = r;
|
||||
}
|
||||
|
||||
@@ -608,7 +608,7 @@ void workbench_forward_draw_scene(WORKBENCH_Data *vedata)
|
||||
DRW_draw_pass(psl->transparent_accum_pass);
|
||||
}
|
||||
else {
|
||||
/* TODO(fclem): this is unecessary and takes up perf.
|
||||
/* TODO(fclem): this is unnecessary and takes up perf.
|
||||
* Better change the composite frag shader to not use the tx. */
|
||||
const float clear_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};
|
||||
GPU_framebuffer_bind(fbl->transparent_accum_fb);
|
||||
|
||||
@@ -286,7 +286,7 @@ static void drw_shgroup_bone_envelope(
|
||||
float fac_head = (len - head_sphere[3]) / len;
|
||||
float fac_tail = (len - tail_sphere[3]) / len;
|
||||
|
||||
/* Small epsilon to avoid problem with float precison in shader. */
|
||||
/* Small epsilon to avoid problem with float precision in shader. */
|
||||
if (len > (tail_sphere[3] + head_sphere[3]) + 1e-8f) {
|
||||
|
||||
copy_v4_v4(tmp_sphere, head_sphere);
|
||||
|
||||
@@ -379,7 +379,7 @@ static void mesh_render_calc_normals_loop_and_poly(const Mesh *me, const float s
|
||||
/**
|
||||
* TODO(campbell): 'gpumat_array' may include materials linked to the object.
|
||||
* While not default, object materials should be supported.
|
||||
* Although this only impacts the data thats generated, not the materials that display.
|
||||
* Although this only impacts the data that's generated, not the materials that display.
|
||||
*/
|
||||
static MeshRenderData *mesh_render_data_create_ex(
|
||||
Mesh *me, const int types,
|
||||
|
||||
@@ -759,11 +759,11 @@ static void particle_batch_cache_ensure_procedural_final_points(
|
||||
|
||||
cache->final[subdiv].proc_buf = GPU_vertbuf_create_with_format(&format);
|
||||
|
||||
/* Create a destination buffer for the tranform feedback. Sized appropriately */
|
||||
/* Thoses are points! not line segments. */
|
||||
/* Create a destination buffer for the transform feedback. Sized appropriately */
|
||||
/* Those are points! not line segments. */
|
||||
GPU_vertbuf_data_alloc(cache->final[subdiv].proc_buf, cache->final[subdiv].strands_res * cache->strands_len);
|
||||
|
||||
/* Create vbo immediatly to bind to texture buffer. */
|
||||
/* Create vbo immediately to bind to texture buffer. */
|
||||
GPU_vertbuf_use(cache->final[subdiv].proc_buf);
|
||||
|
||||
cache->final[subdiv].proc_tex = GPU_texture_create_from_vertbuf(cache->final[subdiv].proc_buf);
|
||||
@@ -913,7 +913,7 @@ static void particle_batch_cache_ensure_procedural_strand_data(
|
||||
MEM_freeN(parent_mcol);
|
||||
}
|
||||
|
||||
/* Create vbo immediatly to bind to texture buffer. */
|
||||
/* Create vbo immediately to bind to texture buffer. */
|
||||
GPU_vertbuf_use(cache->proc_strand_buf);
|
||||
cache->strand_tex = GPU_texture_create_from_vertbuf(cache->proc_strand_buf);
|
||||
|
||||
@@ -1026,7 +1026,7 @@ static void particle_batch_cache_ensure_procedural_pos(
|
||||
}
|
||||
}
|
||||
|
||||
/* Create vbo immediatly to bind to texture buffer. */
|
||||
/* Create vbo immediately to bind to texture buffer. */
|
||||
GPU_vertbuf_use(cache->proc_point_buf);
|
||||
|
||||
cache->point_tex = GPU_texture_create_from_vertbuf(cache->proc_point_buf);
|
||||
|
||||
@@ -105,7 +105,7 @@ typedef struct GlobalsUboStorage {
|
||||
|
||||
/* NOTE! Put all color before UBO_LAST_COLOR */
|
||||
|
||||
/* Pack individual float at the end of the buffer to avoid alignement errors */
|
||||
/* Pack individual float at the end of the buffer to avoid alignment errors */
|
||||
float sizeLampCenter, sizeLampCircle, sizeLampCircleShadow;
|
||||
float sizeVertex, sizeEdge, sizeEdgeFix, sizeFaceDot;
|
||||
float gridDistance, gridResolution, gridSubdivisions, gridScale;
|
||||
|
||||
@@ -57,7 +57,7 @@ typedef enum ParticleRefineShader {
|
||||
} ParticleRefineShader;
|
||||
|
||||
static GPUShader *g_refine_shaders[PART_REFINE_MAX_SHADER] = {NULL};
|
||||
static DRWPass *g_tf_pass; /* XXX can be a problem with mulitple DRWManager in the future */
|
||||
static DRWPass *g_tf_pass; /* XXX can be a problem with multiple DRWManager in the future */
|
||||
|
||||
extern char datatoc_common_hair_lib_glsl[];
|
||||
extern char datatoc_common_hair_refine_vert_glsl[];
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/**
|
||||
* DRW Instance Data Manager
|
||||
* This is a special memory manager that keeps memory blocks ready to send as vbo data in one continuous allocation.
|
||||
* This way we avoid feeding gawain each instance data one by one and unecessary memcpy.
|
||||
* This way we avoid feeding gawain each instance data one by one and unnecessary memcpy.
|
||||
* Since we loose which memory block was used each DRWShadingGroup we need to redistribute them in the same order/size
|
||||
* to avoid to realloc each frame.
|
||||
* This is why DRWInstanceDatas are sorted in a list for each different data size.
|
||||
@@ -406,7 +406,7 @@ void DRW_instance_data_list_free_unused(DRWInstanceDataList *idatalist)
|
||||
idatalist->idata_head[i] = next_idata;
|
||||
}
|
||||
else {
|
||||
/* idatalist->idata_tail[i] is garanteed not to be null in this case. */
|
||||
/* idatalist->idata_tail[i] is guaranteed not to be null in this case. */
|
||||
idatalist->idata_tail[i]->next = next_idata;
|
||||
}
|
||||
DRW_instance_data_free(idata);
|
||||
|
||||
@@ -965,7 +965,7 @@ static void drw_engines_cache_populate(Object *ob)
|
||||
DST.ob_state = NULL;
|
||||
|
||||
/* HACK: DrawData is copied by COW from the duplicated object.
|
||||
* This is valid for IDs that cannot be instanciated but this
|
||||
* This is valid for IDs that cannot be instantiated but this
|
||||
* is not what we want in this case so we clear the pointer
|
||||
* ourselves here. */
|
||||
drw_drawdata_unlink_dupli((ID *)ob);
|
||||
@@ -1092,7 +1092,7 @@ int DRW_draw_region_engine_info_offset(void)
|
||||
void DRW_draw_region_engine_info(void)
|
||||
{
|
||||
const char *info_array_final[MAX_INFO_LINES + 1];
|
||||
/* This should be maxium number of engines running at the same time. */
|
||||
/* This should be maximum number of engines running at the same time. */
|
||||
char info_array[MAX_INFO_LINES][GPU_INFO_SIZE];
|
||||
int i = 0;
|
||||
|
||||
@@ -1579,7 +1579,7 @@ void DRW_draw_render_loop_ex(
|
||||
|
||||
if (G.debug_value > 20 && G.debug_value < 30) {
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
rcti rect; /* local coordinate visible rect inside region, to accomodate overlapping ui */
|
||||
rcti rect; /* local coordinate visible rect inside region, to accommodate overlapping ui */
|
||||
ED_region_visible_rect(DST.draw_ctx.ar, &rect);
|
||||
DRW_stats_draw(&rect);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
@@ -1899,7 +1899,7 @@ void DRW_render_object_iter(
|
||||
DEG_OBJECT_ITER_FOR_RENDER_ENGINE_END
|
||||
}
|
||||
|
||||
/* Assume a valid gl context is bound (and that the gl_context_mutex has been aquired).
|
||||
/* Assume a valid gl context is bound (and that the gl_context_mutex has been acquired).
|
||||
* This function only setup DST and execute the given function.
|
||||
* Warning: similar to DRW_render_to_image you cannot use default lists (dfbl & dtxl). */
|
||||
void DRW_custom_pipeline(
|
||||
|
||||
@@ -120,8 +120,8 @@ typedef struct DRWCallState {
|
||||
float modelviewinverse[4][4];
|
||||
float modelviewprojection[4][4];
|
||||
float normalview[3][3];
|
||||
float normalworld[3][3]; /* Not view dependant */
|
||||
float orcotexfac[2][3]; /* Not view dependant */
|
||||
float normalworld[3][3]; /* Not view dependent */
|
||||
float orcotexfac[2][3]; /* Not view dependent */
|
||||
float eyevec[3];
|
||||
} DRWCallState;
|
||||
|
||||
@@ -355,9 +355,9 @@ typedef struct DRWManager {
|
||||
|
||||
bool buffer_finish_called; /* Avoid bad usage of DRW_render_instance_buffer_finish */
|
||||
|
||||
/* View dependant uniforms. */
|
||||
/* View dependent uniforms. */
|
||||
DRWMatrixState original_mat; /* Original rv3d matrices. */
|
||||
int override_mat; /* Bitflag of which matrices are overriden. */
|
||||
int override_mat; /* Bitflag of which matrices are overridden. */
|
||||
int num_clip_planes; /* Number of active clipplanes. */
|
||||
bool dirty_mat;
|
||||
|
||||
@@ -381,7 +381,7 @@ typedef struct DRWManager {
|
||||
* the top portion of the struct so DO NOT MOVE IT! */
|
||||
void *gl_context; /* Unique ghost context used by the draw manager. */
|
||||
GPUContext *gpu_context;
|
||||
TicketMutex *gl_context_mutex; /* Mutex to lock the drw manager and avoid concurent context usage. */
|
||||
TicketMutex *gl_context_mutex; /* Mutex to lock the drw manager and avoid concurrent context usage. */
|
||||
|
||||
/** GPU Resource State: Memory storage between drawing. */
|
||||
struct {
|
||||
|
||||
@@ -145,7 +145,7 @@ void DRW_shgroup_uniform_texture(DRWShadingGroup *shgroup, const char *name, con
|
||||
drw_shgroup_uniform(shgroup, name, DRW_UNIFORM_TEXTURE, tex, 0, 1);
|
||||
}
|
||||
|
||||
/* Same as DRW_shgroup_uniform_texture but is garanteed to be bound if shader does not change between shgrp. */
|
||||
/* Same as DRW_shgroup_uniform_texture but is guaranteed to be bound if shader does not change between shgrp. */
|
||||
void DRW_shgroup_uniform_texture_persistent(DRWShadingGroup *shgroup, const char *name, const GPUTexture *tex)
|
||||
{
|
||||
BLI_assert(tex != NULL);
|
||||
@@ -158,7 +158,7 @@ void DRW_shgroup_uniform_block(DRWShadingGroup *shgroup, const char *name, const
|
||||
drw_shgroup_uniform(shgroup, name, DRW_UNIFORM_BLOCK, ubo, 0, 1);
|
||||
}
|
||||
|
||||
/* Same as DRW_shgroup_uniform_block but is garanteed to be bound if shader does not change between shgrp. */
|
||||
/* Same as DRW_shgroup_uniform_block but is guaranteed to be bound if shader does not change between shgrp. */
|
||||
void DRW_shgroup_uniform_block_persistent(DRWShadingGroup *shgroup, const char *name, const GPUUniformBuffer *ubo)
|
||||
{
|
||||
BLI_assert(ubo != NULL);
|
||||
@@ -960,7 +960,7 @@ void DRW_shgroup_instance_batch(DRWShadingGroup *shgroup, struct GPUBatch *batch
|
||||
drw_call_calc_orco(NULL, shgroup->instance_orcofac);
|
||||
/* PERF : This destroys the vaos cache so better check if it's necessary. */
|
||||
/* Note: This WILL break if batch->verts[0] is destroyed and reallocated
|
||||
* at the same adress. Bindings/VAOs would remain obsolete. */
|
||||
* at the same address. Bindings/VAOs would remain obsolete. */
|
||||
//if (shgroup->instancing_geom->inst != batch->verts[0])
|
||||
GPU_batch_instbuf_set(shgroup->instance_geom, batch->verts[0], false);
|
||||
|
||||
@@ -1123,7 +1123,7 @@ static int pass_shgroup_dist_sort(void *thunk, const void *a, const void *b)
|
||||
|
||||
/**
|
||||
* Sort Shading groups by decreasing Z of their first draw call.
|
||||
* This is usefull for order dependant effect such as transparency.
|
||||
* This is useful for order dependent effect such as transparency.
|
||||
**/
|
||||
void DRW_pass_sort_shgroup_z(DRWPass *pass)
|
||||
{
|
||||
|
||||
@@ -788,7 +788,7 @@ static void draw_matrices_model_prepare(DRWCallState *st)
|
||||
/* set eye vector, transformed to object coords */
|
||||
mul_m3_v3(tmp, st->eyevec);
|
||||
}
|
||||
/* Non view dependant */
|
||||
/* Non view dependent */
|
||||
if (st->matflag & DRW_CALL_MODELINVERSE) {
|
||||
invert_m4_m4(st->modelinverse, st->model);
|
||||
st->matflag &= ~DRW_CALL_MODELINVERSE;
|
||||
@@ -908,7 +908,7 @@ static void bind_ubo(GPUUniformBuffer *ubo, char bind_type)
|
||||
/* printf so user can report bad behaviour */
|
||||
printf("Not enough ubo slots! This should not happen!\n");
|
||||
/* This is not depending on user input.
|
||||
* It is our responsability to make sure there is enough slots. */
|
||||
* It is our responsibility to make sure there is enough slots. */
|
||||
BLI_assert(0);
|
||||
}
|
||||
slot_flags[bind_num] = bind_type;
|
||||
|
||||
@@ -272,7 +272,7 @@ static void EDIT_CURVE_cache_finish(void *vedata)
|
||||
EDIT_CURVE_PassList *psl = ((EDIT_CURVE_Data *)vedata)->psl;
|
||||
EDIT_CURVE_StorageList *stl = ((EDIT_CURVE_Data *)vedata)->stl;
|
||||
|
||||
/* Do something here! dependant on the objects gathered */
|
||||
/* Do something here! dependent on the objects gathered */
|
||||
UNUSED_VARS(psl, stl);
|
||||
}
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ static void EDIT_LATTICE_cache_finish(void *vedata)
|
||||
EDIT_LATTICE_PassList *psl = ((EDIT_LATTICE_Data *)vedata)->psl;
|
||||
EDIT_LATTICE_StorageList *stl = ((EDIT_LATTICE_Data *)vedata)->stl;
|
||||
|
||||
/* Do something here! dependant on the objects gathered */
|
||||
/* Do something here! dependent on the objects gathered */
|
||||
UNUSED_VARS(psl, stl);
|
||||
}
|
||||
|
||||
|
||||
@@ -193,7 +193,7 @@ static void EDIT_SURFACE_cache_finish(void *vedata)
|
||||
EDIT_SURFACE_PassList *psl = ((EDIT_SURFACE_Data *)vedata)->psl;
|
||||
EDIT_SURFACE_StorageList *stl = ((EDIT_SURFACE_Data *)vedata)->stl;
|
||||
|
||||
/* Do something here! dependant on the objects gathered */
|
||||
/* Do something here! dependent on the objects gathered */
|
||||
UNUSED_VARS(psl, stl);
|
||||
}
|
||||
|
||||
|
||||
@@ -294,7 +294,7 @@ static void EDIT_TEXT_cache_finish(void *vedata)
|
||||
EDIT_TEXT_PassList *psl = ((EDIT_TEXT_Data *)vedata)->psl;
|
||||
EDIT_TEXT_StorageList *stl = ((EDIT_TEXT_Data *)vedata)->stl;
|
||||
|
||||
/* Do something here! dependant on the objects gathered */
|
||||
/* Do something here! dependent on the objects gathered */
|
||||
UNUSED_VARS(psl, stl);
|
||||
}
|
||||
|
||||
|
||||
@@ -259,7 +259,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
|
||||
DRW_shgroup_call_sculpt_add(shgrp, ob, ob->obmat);
|
||||
}
|
||||
else if (is_flat_object_viewed_from_side) {
|
||||
/* Avoid loosing flat objects when in ortho views (see T56549) */
|
||||
/* Avoid losing flat objects when in ortho views (see T56549) */
|
||||
struct GPUBatch *geom = DRW_cache_object_wire_outline_get(ob);
|
||||
GPUShader *sh = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR);
|
||||
DRWShadingGroup *shgrp = DRW_shgroup_create(sh, psl->flat_wireframe_pass);
|
||||
|
||||
@@ -349,7 +349,7 @@ static void PAINT_TEXTURE_cache_finish(void *vedata)
|
||||
PAINT_TEXTURE_PassList *psl = ((PAINT_TEXTURE_Data *)vedata)->psl;
|
||||
PAINT_TEXTURE_StorageList *stl = ((PAINT_TEXTURE_Data *)vedata)->stl;
|
||||
|
||||
/* Do something here! dependant on the objects gathered */
|
||||
/* Do something here! dependent on the objects gathered */
|
||||
UNUSED_VARS(psl);
|
||||
|
||||
MEM_SAFE_FREE(stl->g_data->shgroup_image_array);
|
||||
|
||||
@@ -229,7 +229,7 @@ static void SCULPT_cache_finish(void *vedata)
|
||||
SCULPT_PassList *psl = ((SCULPT_Data *)vedata)->psl;
|
||||
SCULPT_StorageList *stl = ((SCULPT_Data *)vedata)->stl;
|
||||
|
||||
/* Do something here! dependant on the objects gathered */
|
||||
/* Do something here! dependent on the objects gathered */
|
||||
UNUSED_VARS(psl, stl);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
uniform mat4 ViewProjectionMatrix;
|
||||
uniform vec3 screenVecs[3];
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in float axis; /* position on the axis. [0.0-1.0] is X axis, [1.0-2.0] is Y, etc... */
|
||||
in vec2 screenPos;
|
||||
in vec3 colorAxis;
|
||||
|
||||
@@ -7,7 +7,7 @@ uniform mat4 ProjectionMatrix;
|
||||
uniform vec2 viewportSize;
|
||||
uniform float lineThickness = 2.0;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec2 pos0;
|
||||
in vec2 pos1;
|
||||
in vec2 pos2;
|
||||
|
||||
@@ -3,7 +3,7 @@ uniform mat4 ViewMatrix;
|
||||
uniform mat4 ViewMatrixInverse;
|
||||
uniform mat4 ViewProjectionMatrix;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec3 pos;
|
||||
|
||||
/* ---- Per instance Attribs ---- */
|
||||
|
||||
@@ -5,7 +5,7 @@ uniform mat4 ViewMatrix;
|
||||
uniform mat4 ProjectionMatrix;
|
||||
uniform vec2 viewportSize;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec3 pos;
|
||||
in vec3 snor;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ uniform mat4 ViewProjectionMatrix;
|
||||
uniform mat4 ViewMatrix;
|
||||
uniform mat4 ProjectionMatrix;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec3 pos;
|
||||
in vec3 nor;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ uniform mat4 ProjectionMatrix;
|
||||
uniform vec2 viewportSize;
|
||||
uniform float lineThickness = 2.0;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec2 pos0;
|
||||
in vec2 pos1;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
uniform mat4 ViewMatrix;
|
||||
uniform mat4 ProjectionMatrix;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec2 pos;
|
||||
|
||||
/* ---- Per instance Attribs ---- */
|
||||
|
||||
@@ -4,7 +4,7 @@ uniform mat4 ViewProjectionMatrix;
|
||||
uniform mat4 ViewMatrix;
|
||||
uniform vec2 viewportSize;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec2 pos; /* bone aligned screen space */
|
||||
in uint flag;
|
||||
|
||||
@@ -33,7 +33,7 @@ noperspective out float colorFac;
|
||||
flat out vec4 finalWireColor;
|
||||
flat out vec4 finalInnerColor;
|
||||
|
||||
uniform float stickSize = 5.0; /* might be dependant on DPI setting in the future. */
|
||||
uniform float stickSize = 5.0; /* might be dependent on DPI setting in the future. */
|
||||
|
||||
/* project to screen space */
|
||||
vec2 proj(vec4 pos)
|
||||
|
||||
@@ -14,7 +14,7 @@ uniform int hairStrandsRes = 8;
|
||||
|
||||
/**
|
||||
* hairThicknessRes : Subdiv around the hair.
|
||||
* 1 - Wire Hair: Only one pixel thick, independant of view distance.
|
||||
* 1 - Wire Hair: Only one pixel thick, independent of view distance.
|
||||
* 2 - Polystrip Hair: Correct width, flat if camera is parallel.
|
||||
* 3+ - Cylinder Hair: Massive calculation but potentially perfect. Still need proper support.
|
||||
**/
|
||||
|
||||
@@ -68,7 +68,7 @@ void main()
|
||||
distToEdgeAndPoint((ssPos[2] - ssPos[1]) + 1e-8, ssPos[1], e.x, p.y);
|
||||
distToEdgeAndPoint((ssPos[0] - ssPos[2]) + 1e-8, ssPos[2], e.y, p.z);
|
||||
|
||||
/* Step 2 : coloring (order dependant) */
|
||||
/* Step 2 : coloring (order dependent) */
|
||||
|
||||
/* Face */
|
||||
FragColor = faceColor;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
uniform mat4 ViewProjectionMatrix;
|
||||
uniform vec3 screenVecs[3];
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in float axis; /* position on the axis. [0.0-1.0] is X axis, [1.0-2.0] is Y, etc... */
|
||||
in vec2 screenPos;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
uniform mat4 ViewProjectionMatrix;
|
||||
uniform vec2 aspect;
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec2 texCoord;
|
||||
in vec2 pos;
|
||||
/* ---- Per instance Attribs ---- */
|
||||
|
||||
@@ -97,7 +97,7 @@ void main()
|
||||
vec2 sPos = gl_FragCoord.xy / viewportSize; /* Screen [0,1] position */
|
||||
|
||||
/* To reduce artifacts, use a local version of the positions
|
||||
* to compute derivatives since they are not position dependant.
|
||||
* to compute derivatives since they are not position dependent.
|
||||
* This gets rid of the blocky artifacts. Unfortunately we still
|
||||
* need the world position for the grid to scale properly from the origin. */
|
||||
vec3 gPos, wPos; /* Grid pos., World pos. */
|
||||
@@ -222,7 +222,7 @@ void main()
|
||||
else {
|
||||
/* Manual, non hard, depth test:
|
||||
* Progressively fade the grid below occluders
|
||||
* (avoids poping visuals due to depth buffer precision) */
|
||||
* (avoids popping visuals due to depth buffer precision) */
|
||||
/* Harder settings tend to flicker more,
|
||||
* but have less "see through" appearance. */
|
||||
const float test_hardness = 1e7;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
uniform mat4 ViewProjectionMatrix;
|
||||
uniform vec3 screen_vecs[2];
|
||||
|
||||
/* ---- Instanciated Attribs ---- */
|
||||
/* ---- Instantiated Attribs ---- */
|
||||
in vec2 pos;
|
||||
|
||||
/* ---- Per instance Attribs ---- */
|
||||
|
||||
@@ -29,7 +29,7 @@ void main()
|
||||
return;
|
||||
|
||||
/* Don't outline if concave edge. */
|
||||
/* That would hide a lot of non usefull edge but it flickers badly.
|
||||
/* That would hide a lot of non useful edge but it flickers badly.
|
||||
* TODO revisit later... */
|
||||
// if (dot(n0, v13) > 0.01)
|
||||
// return;
|
||||
|
||||
@@ -2457,7 +2457,7 @@ PyDoc_STRVAR(bpy_bmelemseq_index_update_doc,
|
||||
" .. note::\n"
|
||||
"\n"
|
||||
" Running this on sequences besides :class:`BMesh.verts`, :class:`BMesh.edges`, :class:`BMesh.faces`\n"
|
||||
" works but won't result in each element having a valid index, insted its order in the sequence will be set.\n"
|
||||
" works but wont result in each element having a valid index, instead its order in the sequence will be set.\n"
|
||||
);
|
||||
static PyObject *bpy_bmelemseq_index_update(BPy_BMElemSeq *self)
|
||||
{
|
||||
|
||||
@@ -944,7 +944,7 @@ PyObject *BPy_Wrap_GetKeys(IDProperty *prop)
|
||||
/* pass */
|
||||
}
|
||||
|
||||
if (i != prop->len) { /* if the loop didnt finish, we know the length is wrong */
|
||||
if (i != prop->len) { /* if the loop didn't finish, we know the length is wrong */
|
||||
BPy_IDGroup_CorrectListLen(prop, list, i, __func__);
|
||||
Py_DECREF(list); /*free the list*/
|
||||
/*call self again*/
|
||||
|
||||
@@ -618,7 +618,7 @@ const char *PyC_UnicodeAsByteAndSize(PyObject *py_str, Py_ssize_t *size, PyObjec
|
||||
|
||||
if (result) {
|
||||
/* 99% of the time this is enough but we better support non unicode
|
||||
* chars since blender doesnt limit this */
|
||||
* chars since blender doesn't limit this */
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
@@ -671,7 +671,7 @@ PyObject *PyC_UnicodeFromByteAndSize(const char *str, Py_ssize_t size)
|
||||
PyObject *result = PyUnicode_FromStringAndSize(str, size);
|
||||
if (result) {
|
||||
/* 99% of the time this is enough but we better support non unicode
|
||||
* chars since blender doesnt limit this */
|
||||
* chars since blender doesn't limit this */
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/** \file blender/python/intern/bpy_path.c
|
||||
* \ingroup pythonintern
|
||||
*
|
||||
* This file defines '_bpy_path' module, Some 'C' funtionality used by 'bpy.path'
|
||||
* This file defines '_bpy_path' module, Some 'C' functionality used by 'bpy.path'
|
||||
*/
|
||||
|
||||
#include <Python.h>
|
||||
|
||||
@@ -2360,7 +2360,7 @@ static int pyrna_prop_collection_subscript_str_lib_pair_ptr(
|
||||
}
|
||||
else {
|
||||
PyErr_Format(PyExc_KeyError,
|
||||
"%s: lib must be a sting or None, not %.200s",
|
||||
"%s: lib must be a string or None, not %.200s",
|
||||
err_prefix, Py_TYPE(keylib)->tp_name);
|
||||
return -1;
|
||||
}
|
||||
@@ -4162,7 +4162,7 @@ static PyObject *pyrna_struct_meta_idprop_getattro(PyObject *cls, PyObject *attr
|
||||
* <bpy_struct, BoolProperty("foo")>
|
||||
* ...rather than returning the deferred class register tuple as checked by pyrna_is_deferred_prop()
|
||||
*
|
||||
* Disable for now, this is faking internal behavior in a way thats too tricky to maintain well. */
|
||||
* Disable for now, this is faking internal behavior in a way that's too tricky to maintain well. */
|
||||
#if 0
|
||||
if (ret == NULL) { // || pyrna_is_deferred_prop(ret)
|
||||
StructRNA *srna = srna_from_self(cls, "StructRNA.__getattr__");
|
||||
|
||||
@@ -641,7 +641,7 @@ PyMODINIT_FUNC PyInit_mathutils(void)
|
||||
|
||||
/* submodule */
|
||||
PyModule_AddObject(mod, "geometry", (submodule = PyInit_mathutils_geometry()));
|
||||
/* XXX, python doesnt do imports with this usefully yet
|
||||
/* XXX, python doesn't do imports with this usefully yet
|
||||
* 'from mathutils.geometry import PolyFill'
|
||||
* ...fails without this. */
|
||||
PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
|
||||
|
||||
@@ -1265,7 +1265,7 @@ static PyObject *M_Geometry_tessellate_polygon(PyObject *UNUSED(self), PyObject
|
||||
BKE_displist_fill(&dispbase, &dispbase, NULL, false);
|
||||
|
||||
/* The faces are stored in a new DisplayList
|
||||
* thats added to the head of the listbase */
|
||||
* that's added to the head of the listbase */
|
||||
dl = dispbase.first;
|
||||
|
||||
tri_list = PyList_New(dl->parts);
|
||||
|
||||
@@ -136,7 +136,7 @@ def filter_op_list(operators):
|
||||
def reset_blend():
|
||||
bpy.ops.wm.read_factory_settings()
|
||||
for scene in bpy.data.scenes:
|
||||
# reduce range so any bake action doesnt take too long
|
||||
# reduce range so any bake action doesn't take too long
|
||||
scene.frame_start = 1
|
||||
scene.frame_end = 5
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ def main():
|
||||
sys.exit(1)
|
||||
|
||||
if md5 != md5_new:
|
||||
print(" Running: %s\n MD5 Recieved: %s\n MD5 Expected: %s" % (run, md5_new, md5))
|
||||
print(" Running: %s\n MD5 Received: %s\n MD5 Expected: %s" % (run, md5_new, md5))
|
||||
sys.exit(1)
|
||||
|
||||
print(" Success: %s" % run)
|
||||
|
||||
Reference in New Issue
Block a user