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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-04-28BLI: add VectorSet.is_empty methodJacques Lucke
2020-04-28BLI: rename Vector.empty to Vector.is_emptyJacques Lucke
2020-04-28BLI: add Set.clear methodJacques Lucke
2020-04-28BLI: add Set.is_empty methodJacques Lucke
2020-04-28BLI: add Map.lookup_or_add_default methodJacques Lucke
2020-04-28Fix armature roll test failing on macOSBrecht Van Lommel
2020-04-28BLI: add Map.is_empty() methodJacques Lucke
2020-04-25BLI: add LinearAllocatorJacques Lucke
This allocator is useful when it is necessary to allocate many small elements.
2020-04-25BLI: improve StringRef.copyJacques Lucke
2020-04-24BLI: Implement StringMap.add and StringMap.add_or_modifyJacques Lucke
2020-04-23BLI: various data structure improvementsJacques Lucke
* Rename template parameter N to InlineBufferCapacity * Expose InlineBufferCapacity parameter for Set and Map * Add some comments * Fixed an error that I introduced recently
2020-04-23BLI: remove TaskParallelRangePoolBrecht Van Lommel
This is not currently used and will take some work to support with TBB, so remove it until we have a new implementation based on TBB. Fixes T76005, parallel range pool tests failing. Ref D7475
2020-04-23Fix T76005: BLI_task test failing after recent changesBrecht Van Lommel
This was an error in changes made to this test to accomodate the new reduce callback.
2020-04-23BLI: optimize VectorSet implementationJacques Lucke
Instead of building on top of `BLI::Vector`, just use a raw array and handle the growing in `BLI::VectorSet`. After this change, the existing `EdgeSet` can be reimplemented using `BLI::VectorSet` without performance regressions.
2020-04-22Tests: Fix build error in BKE_armature testRay Molenkamp
Test does not link due to missing symbols, needs buildinfoobj to link against when WITH_BUILDINFO is on
2020-04-21Tests: added unit test for `mat3_vec_to_roll()` functionSybren A. Stüvel
This was used to investigate T73840. Since the armature math is far from simple, I thought it would be a good idea to start writing some unit tests for it. No functional changes in Blender itself.
2020-04-21BLI: simplify naming of listbase wrapperJacques Lucke
2020-04-21BLI: Use .hh extension for C++ headers in blenlibJacques Lucke
2020-04-21CleanUp: Renamed `BLI_task_pool_userdata` to `BLI_task_pool_user_data`Jeroen Bakker
In preparation for {D7475}
2020-04-17Task: Separate Finalize into Reduce And FreeJeroen Bakker
In preparation of TBB we need to split the finalize function into reduce and free. Reduce is used to combine results and free for freeing any allocated memory. The reduce function is called to join user data chunk into another, to reduce the result to the original userdata_chunk memory. These functions should have no side effects so that they can be run on any thread. The free functions should free data created during execution (TaskParallelRangeFunc). Original patch by Brecht van Lommel {rB61f49db843cf5095203112226ae386f301be1e1a}. Reviewed By: Brecht van Lommel, Bastien Montagne Differential Revision: https://developer.blender.org/D7394
2020-04-09TaskScheduler: Minor Preparations for TBBBrecht Van Lommel
Tasks: move priority from task to task pool {rBf7c18df4f599fe39ffc914e645e504fcdbee8636} Tasks: split task.c into task_pool.cc and task_iterator.c {rB4ada1d267749931ca934a74b14a82479bcaa92e0} Differential Revision: https://developer.blender.org/D7385
2020-04-09USD: ensure test does not depend on BLI_assert()Sybren A. Stüvel
The test failure in T75491 only showed up in debug builds because `BLI_assert()` is a no-op in release builds. This is now replaced by a proper GTests call to `ADD_FAILURE()`, ensuring that the test fails regardless of build mode.
2020-04-07Cleanup: BLI_path.h function renamingCampbell Barton
Use BLI_path_ prefix, more consistent names: BLI_parent_dir -> BLI_path_parent_dir BLI_parent_dir_until_exists -> BLI_path_parent_dir_until_exists BLI_ensure_filename -> BLI_path_filename_ensure BLI_first_slash -> BLI_path_slash_find BLI_last_slash -> BLI_path_slash_rfind BLI_add_slash -> BLI_path_slash_ensure BLI_del_slash -> BLI_path_slash_rstrip BLI_path_native_slash -> BLI_path_slash_native Rename 'cleanup' to 'normalize', similar to Python's `os.path.normpath`. BLI_cleanup_path -> BLI_path_normalize BLI_cleanup_dir -> BLI_path_normalize_dir BLI_cleanup_unc -> BLI_path_normalize_unc BLI_cleanup_unc16 -> BLI_path_normalize_unc16 Clarify naming for extracting, creating numbered paths: BLI_stringenc -> BLI_path_sequence_encode BLI_stringdec -> BLI_path_sequence_decode Part of T74506 proposal.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-16Fix another implicit cast of boot to intSergey Sharybin
Use proper comparison to nullptr. It is important to use nullptr since NULL is actually an integer, which leads to another type of warnings.
2020-03-16Fix implicit cast from bool to int in path testsSergey Sharybin
2020-03-16Fix a syntax error in test spec for BLI_delaunay_2d_test.Howard Trickey
Test specs are read from strings, and there was a comma instead of a decimal point, and then an extra decimal point in the Quad0 test. This test has been flaky on Windows buildbot. Perhaps this is why.
2020-03-06Cleanup: move Alembic, AVI, Collada, and USD to `source/blender/io`Sybren A. Stüvel
This moves the `alembic`, `avi`, `collada`, and `usd` modules into a common `io` directory. This also cleans up some `#include "../../{somedir}/{somefile}.h"` by adding `../../io/{somedir}` to `CMakeLists.txt` and then just using `#include "{somefile}.h"`. No functional changes.
2020-03-05Initial step for IDTypeInfo refactor 'cleanup' project.Bastien Montagne
Introduce new IDTypeInfo structure. Each ID type will have its own, with some minimal basic common info, and ID management callbacks. This patch only does it for Object type, for demo/testing purpose. Moving all existing IDs is a goal of next "cleanup Friday". Note that BKE_idcode features should then be merged back into BKE_idtype - but this will have to be done later, once all ID types have been properly converted to the new system. Another later TODO might be to try and add callbacks for file read/write, and lib_query ID usages looper. This is part of T73719. Thanks to @brecht for initial idea, and reviewing the patch. Differential Revision: https://developer.blender.org/D6966
2020-03-04Cleanup: cmake indentationCampbell Barton
2020-03-04BLI_math: add clamp_v# and clamp_v#_v#v# utility functionsTiago Chaves
2020-03-03Fix delaunay triangulation, bad indices for output faces.Howard Trickey
If there were merged vertices, sometimes the output faces had wrong vertex indices. Added a test for this, and fixed.
2020-03-02Fix T65568: sewing and self collision issueIsh Bosamiya
As explained in T65568 by @LucaRood, the self collision system should exclude triangles that are connected by sewing springs. Differential Revision: https://developer.blender.org/D6911
2020-03-01Fix problem with Delaunay triangulalation re output mapping.Howard Trickey
The array giving original vertex indices should not contain entries for newly created vertices. Added a test to check this.
2020-02-29Made BLI_delaunay_2d_cdt_calc better at tiny feature elimination.Howard Trickey
The 'random' unit tests and some examples from the new boolean code triggered asserts and crashes. This fixes those. There is a new flag in the input that optionally disables a pass over input to snap segment edges to other segments.
2020-02-15Cleanup: CMake formattingCampbell Barton
2020-02-10BLI: improve various C++ data structuresJacques Lucke
The changes come from the `functions` branch, where I'm using these structures a lot. This also includes a new `BLI::Optional<T>` type, which is similar to `std::Optional<T>` which can be used when Blender starts using C++17.
2020-01-28Disable some longer running tests from previous commit.Howard Trickey
2020-01-28Fix T73271, Delaunay Triangulation not robust enough.Howard Trickey
A big rework of the code now uses exact predicates for orientation and incircle. Also switched the main algorithm to use a faster divide and conquer algorithm, which is possible with the exact predicates.
2020-01-27Fix OBJECT_GUARDED_FREE compiler error when type is in namespaceBrecht Van Lommel
2020-01-25Cleanup: include missing CMake headersCampbell Barton
2020-01-24Merge branch 'blender-v2.82-release'Alexander Gavrilov
2020-01-24Depsgraph: fix false positive time dependencies for simple drivers.Alexander Gavrilov
The dependency graph has to know whether a driver must be re-evaluated every frame due to a dependency on the current frame number. For python drivers it was using a heuristic based on searching for certain sub- strings in the expression, notably including '('. When the expression is actually evaluated using Python, this can't be easily improved; however if the Simple Expression evaluator is used, this check can be done precisely by accessing the parsed data. Differential Revision: https://developer.blender.org/D6624
2020-01-23Merge branch 'blender-v2.82-release'Sergey Sharybin
2020-01-23CMake: Refactor external dependencies handlingSergey Sharybin
This is a more correct fix to the issue Brecht was fixing in D6600. While the fix in that patch worked fine for linking it broke ASAN runtime under some circumstances. For example, `make full debug developer` would compile, but trying to start blender will cause assert failure in ASAN (related on check that ASAN is not running already). Top-level idea: leave it to CMake to keep track of dependency graph. The root of the issue comes to the fact that target like "blender" is configured to use a lot of static libraries coming from Blender sources and to use external static libraries. There is nothing which ensures order between blender's and external libraries. Only order of blender libraries is guaranteed. It was possible that due to a cycle or other circumstances some of blender libraries would have been passed to linker after libraries it uses, causing linker errors. For example, this order will likely fail: libbf_blenfont.a libfreetype6.a libbf_blenfont.a This change makes it so blender libraries are explicitly provided their dependencies to an external libraries, which allows CMake to ensure they are always linked against them. General rule here: if bf_foo depends on an external library it is to be provided to LIBS for bf_foo. For example, if bf_blenkernel depends on opensubdiv then LIBS in blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES. The change is made based on searching for used include folders such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries to LIBS ion that CMakeLists.txt. Transitive dependencies are not simplified by this approach, but I am not aware of any downside of this: CMake should be smart enough to simplify them on its side. And even if not, this shouldn't affect linking time. Benefit of not relying on transitive dependencies is that build system is more robust towards future changes. For example, if bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES and all such code is moved to bf_blenkernel this will not break linking. The not-so-trivial part is change to blender_add_lib (and its version in Cycles). The complexity is caused by libraries being provided as a single list argument which doesn't allow to use different release and debug libraries on Windows. The idea is: - Have every library prefixed as "optimized" or "debug" if separation is needed (non-prefixed libraries will be considered "generic"). - Loop through libraries passed to function and do simple parsing which will look for "optimized" and "debug" words and specify following library to corresponding category. This isn't something particularly great. Alternative would be to use target_link_libraries() directly, which sounds like more code but which is more explicit and allows to have more flexibility and control comparing to wrapper approach. Tested the following configurations on Linux, macOS and Windows: - make full debug developer - make full release developer - make lite debug developer - make lite release developer NOTE: Linux libraries needs to be compiled with D6641 applied, otherwise, depending on configuration, it's possible to run into duplicated zlib symbols error. Differential Revision: https://developer.blender.org/D6642
2020-01-23Fix: Use a minimal alignment of 8 in MEM_lockfree_mallocN_alignedJacques Lucke
`posix_memalign` requires the `alignment` to be at least `sizeof(void *)`. Previously, `MEM_mallocN_aligned` would simply return `NULL` if a too small `alignment` was used. This was an OS specific issue. The solution is to use a minimal alignment of `8` for all aligned allocations. The unit tests have been extended to test more possible alignments (some of which were broken before). Reviewers: brecht Differential Revision: https://developer.blender.org/D6660
2020-01-16CMake: Fix linking of ffmpeg_test on macOSSergey Sharybin
Part of the issue was missing library path to png library. Other part was missing iconv passed to linker.
2020-01-15Fix linking error with ffmpeg_test on LinuxBrecht Van Lommel
The exact reason is unclear, but we might as well link just the few libraries that are actually needed for ffmpeg.
2020-01-14test: Add basic codec test for ffmpeg.Ray Molenkamp
This add a basic sanity check that validates the features we use from ffmpeg are actually available Differential Revision: https://developer.blender.org/D5999 Reviewed By: sybren
2020-01-08Fix build error in tests on Clang / macOSBrecht Van Lommel