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
2022-10-17BLI_path: remove trailing NULL argument to BLI_path_joinCampbell Barton
Using varargs had the disadvantages, replace with a macro which has some advantages. - Arguments are type checked. - Less verbose. - Unintended NULL arguments would silently terminate joining paths. - Passing in a NULL argument warns with GCC.
2022-10-07Cleanup: redundant parenthesisCampbell Barton
2022-10-05New math function to add small bias to zero axisAntonio Vazquez
In some situations the zero axis can produce problems and need to add a small bias. This function adds a small bias using the orthogonal result of the others valid axis. Reviewed By: fclem Differential Revision: https://developer.blender.org/D16158 6d
2022-10-05Fix: Crash when reininitializing empty generic arrayHans Goudey
Noticed this while developing new code that used GArray.
2022-10-04BLI: Unroll vector loops for better performance on GCCHans Goudey
On GCC, the loops created by `BLI_VEC_OP_IMPL` were not always unrolled, leading to branching. For `attribute_math::mix4<float3>`, this lead to a significant performance regression compared to its older `interp_v3_v3v3v3v3` counterpart. Instead of a using macros to create the for loops, use variadic templates to manually unroll them. The compiler might do it anyway (I didn't observe any effect on Clang in my tests), but there should be no reason not to unroll these small loops, and making it explicit and removing use of macros seems better. On a Ryzen 3700x, this commits doubles the performance of Catmull Rom curve position evaluation (from 18-19ms to around 9-10ms). Differential Revision: https://developer.blender.org/D16136
2022-10-04Cleanup: replace UNUSED macro with commented args in C++ codeHans Goudey
This is the conventional way of dealing with unused arguments in C++, since it works on all compilers. Regex find and replace: `UNUSED\((\w+)\)` -> `/*$1*/`
2022-10-03Cleanup: sort cmake file listsCampbell Barton
2022-10-03CMake: add missing headersCampbell Barton
2022-10-03Cleanup: spelling in commentsCampbell Barton
Also replace "dm" for evaluated mesh in some comments.
2022-09-30Cleanup: use function style casts for C++Campbell Barton
2022-09-29Sculpt: Rewrite PBVH drawJoseph Eagar
Rewrite PBVH draw to allocate attributes into individual VBOs. The old system tried to create a single VBO that could feed every open viewport. This required uploading every color and UV attribute to the viewport whether needed or not, often exceeding the VBO limit. This new system creates one VBO per attribute. Each attribute layout is given its own GPU batch which is cached inside the owning PBVH node. Notes: * This is a full C++ rewrite. The old code is still there; ripping it out can happen later. * PBVH nodes now have a collection of batches, PBVHBatches, that keeps track of all the batches inside the node. * Batches are built exclusively from a list of attributes. * Each attribute has its own VBO. * Overlays, workbench and EEVEE can all have different attribute layouts, each of which will get its own batch. Reviewed by: Clement Foucault Differential Revision: https://developer.blender.org/D15428 Ref D15428
2022-09-28Fix compiler warnings with clangBrecht Van Lommel
This attribute only works on functions in clang, not function pointers.
2022-09-28Cleanup: spelling in commentsCampbell Barton
Also add missing task ID.
2022-09-28Cleanup: formatCampbell Barton
2022-09-28Correct sign conversion errors in convexhull_2d.cCampbell Barton
2022-09-28Cleanup: improve 2D convex hullChris Blackbourn
Improve correctness, API, comments, memory usage and performance of the 2D convex hull calculation. Pre-requisite for UV packing improvements. Differential Revision: https://developer.blender.org/D16055
2022-09-27BLF: Editing Text with Combining CharactersHarley Acheson
Corrections for caret insertion & movement and deletion for text strings that include non-precomposed diacritical marks (Unicode combining characters). See D15659 for more details and examples. Differential Revision: https://developer.blender.org/D15659 Reviewed by Campbell Barton
2022-09-27Fix T101231: Console flooded with warnings when fluid type is DomainGermano Cavalcante
Although rB67e23b4b2967 turned the problem more recurrent, the warning messages in the console always appear when `BKE_fluid_cache_free_all` is called. This is because of a bug in `BLI_filelist_dir_contents` as this function calls `BLI_strdupcat` instead of `BLI_join_dirfile` NOTE: Other places in Blender avoid this problem by making sure to add a `SEP_STR` to the end of the directory. Differential Revision: https://developer.blender.org/D16043
2022-09-27Cleanup: remove workarounds and version checks for unsupported compilersCampbell Barton
Match minimum supported versions from the WIKI [0] by raising them to: - GCC 9.3.1 - CLANG 8.0 - MVCS 2019 (16.9.16 / 1928) Details: - Add CMake checks that ensure supported compiler versions early on. - Previously GCC per-processor version checks served to exclude `__clang__`, in some cases this has been replaced by explicitly excluding `__clang__`. This was needed as CLANG treated some of these flags differently to GCC, causing the build to fail. - Remove USE_APPLE_OMP_FIX GCC-4.2 OpenMP workaround. - Remove linking error workaround for old MSVC versions. [0]: https://wiki.blender.org/wiki/Building_Blender Reviewed by: brecht, LazyDodo Ref D16068
2022-09-26Cleanup: replace C-style casts with functional casts for numeric typesCampbell Barton
Use function style casts in C++ headers & source.
2022-09-26Cleanup: remove redundant parenthesisCampbell Barton
2022-09-26Cleanup: use ELEM/STR_ELEM/STREQ macrosCampbell Barton
2022-09-26Cleanup: use 'u' prefixed integer types for brevity in C codeCampbell Barton
This also simplifies using function style casts when moving to C++.
2022-09-26Cleanup: replace unsigned with uint, use function style casts for C++Campbell Barton
2022-09-26Cleanup: replace C-style casts with functional casts for numeric typesCampbell Barton
Some changes missed from f68cfd6bb078482c4a779a6e26a56e2734edb5b8.
2022-09-25BLI: simplify removing elements from containers with predicateJacques Lucke
Previously removing elements based on a predicate was a bit cumbersome, especially for hash tables. Now there is a new `remove_if` method in some data structures which is similar to `std::erase_if`. We could consider adding `blender::erase_if` in the future to more closely mimic the standard library, but for now this is using the api design of the surrounding code is used.
2022-09-25Cleanup: follow C++ type cast style guide in some filesJacques Lucke
https://wiki.blender.org/wiki/Style_Guide/C_Cpp#C.2B.2B_Type_Cast This was discussed in https://devtalk.blender.org/t/rfc-style-guide-for-type-casts-in-c-code/25907.
2022-09-25Cleanup: replace C-style casts with functional casts for numeric typesCampbell Barton
2022-09-25Cleanup: replace static_casts with functional casts for numeric typesCampbell Barton
2022-09-25Cleanup: use 'u' prefixed integer types for brevity & cast styleCampbell Barton
To use function style cast '(unsigned char)x' can't be replaced by 'unsigned char(x)'.
2022-09-25Cleanup: remove redundant double parenthesisCampbell Barton
2022-09-23Cleanup: use lowercase function calls & macros in for CMakeCampbell Barton
This is already the case for most CMake usage. Although some find modules are an exception to this, as they were originally maintained externally they use some different conventions. Also corrected bad indentation in: intern/cycles/CMakeLists.txt
2022-09-23Cleanup: spelling in commentsCampbell Barton
2022-09-21Refactor: Move file browser filelist.c to C++Julian Eisel
I'm adding some asset APIs/types in C++ that the file-listing code would use. I prefer porting this code to C++ over adding a C-API for the asset code. Includes some minor cleanups that shouldn't change behavior, like using `MEM_new()`/`MEM_cnew()`, C++ style C-library includes, `LISTBASE_FOREACH()`, removing unnecessary typedefs, etc.
2022-09-21Cleanup: remove vector adaptor data structureJacques Lucke
This was used in early node based particle system development but is not used anymore. The code also didn't match the standards of other data structures in blenlib.
2022-09-21Cleanup: spelling in commentsCampbell Barton
2022-09-20Move workspace.c to C++Jacques Lucke
Differential Revision: https://developer.blender.org/D16020
2022-09-20Geometry Nodes: improve evaluator with lazy threadingJacques Lucke
In large node setup the threading overhead was sometimes very significant. That's especially true when most nodes do very little work. This commit improves the scheduling by not using multi-threading in many cases unless it's likely that it will be worth it. For more details see the comments in `BLI_lazy_threading.hh`. Differential Revision: https://developer.blender.org/D15976
2022-09-20Cleanup: quite compiler warningJacques Lucke
Warning: P3204.
2022-09-19Cleanup: spellingCampbell Barton
2022-09-19Cleanup: Fix grammar in IndexRange headerHans Goudey
Also make it more clear by avoiding repeating the name of the function.
2022-09-18Build: fix gtest build flags affecting actual libraryBrecht Van Lommel
Switch to target_ functions to avoid this.
2022-09-18BLI: Add generic utlity for gathering values with indicesMattias Fredriksson
Add new functions to `array_utils` namespace called `gather(..)`. Versions of `GVArray::materialize_compressed_to_uninitialized(..)` with threading have been reimplemented locally in multiple geometry node contexts. The purpose of this patch is therefore to: * Assemble these implementations in a single file. * Provide a naming convention that is easier to recognize. Differential Revision: https://developer.blender.org/D15786
2022-09-17IndexRange: Add new `intersect` methodClément Foucault
Returns a new range, that contains the intersection of the current one with the given range. This is helpful to select a portion of a range without having to deal with all the asserts of other functions. The resulting range being always a valid subrange, it can be used to iterate or copy a part of a vector.
2022-09-17Cleanup: spelling, punctuation & repeated words in commentsCampbell Barton
2022-09-16Cleanup: spelling in commentsCampbell Barton
2022-09-15Cleanup: quiet sign-conversion warning in OFFSETOF_STRUCT_AFTERCampbell Barton
BLI_strict_flags.h raised a build error when this macro was used.
2022-09-15Cleanup: spelling in comments, comment blocksCampbell Barton
2022-09-14Cleanup: Add missing licence headersHans Goudey
Missed in eaf416693dcb
2022-09-13Geometry Nodes: Port the trim curve node to the new data-blockMattias Fredriksson
The trim functionality is implemented in the geometry module, and generalized a bit to be potentially useful for bisecting in the future. The implementation is based on a helper type called `IndexRangeCyclic` which allows iteration over all control points between two points on a curve. Catmull Rom curves are now supported-- trimmed without resampling first. However, maintaining the exact shape is not possible. NURBS splines are still converted to polylines using the evaluated curve concept. Performance is equivalent or faster then a 3.1 build with regards to node timings. Compared to 3.3 and 3.2, it's easy to observe test cases where the node is at least 3 or 4 times faster. Differential Revision: https://developer.blender.org/D14481