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-02-18Merge remote-tracking branch 'origin/blender-v3.1-release'Sybren A. Stüvel
2022-02-18Fix T95724: boundary error in `BLI_str_unescape_ex`Sybren A. Stüvel
Fix boundary error in `BLI_str_unescape_ex`. The `dst_maxncpy` parameter indicates the maximum buffer size, not the maximum number of characters. As these are strings, the loop has to stop one byte early to allow space for the trailing zero byte. Thanks @mano-wii for the patch!
2022-02-17Fix: Debug build error with vector type divisionHans Goudey
The idea is to keep `is_any_zero` in the `blender::math` namespace, so instead of trying to be clever, just move it there and expand the function where it was used in the class.
2022-02-17License headers: use SPDX identifiersCampbell Barton
2022-02-16BLI: Generalize short algorithm for finding boundsHans Goudey
Finding the greatest and/or smallest element in an array is a common need. This commit refactors the point cloud bounds code added in 6d7dbdbb44f379682 to a more general header in blenlib. This will allow reusing the algorithm for curves without duplicating it. Differential Revision: https://developer.blender.org/D14053
2022-02-16BLI: Implement templated math functions for basic typesHans Goudey
This is meant to complement the `blender::math` functions recently added by D13791. It's sometimes desired to template an operation to work on vector types, but also basic types like `float` and `int`. This patch adds that ability with a new `BLI_math_base.hh` header. The existing vector math header is changed to use the `vec_base` type more explicitly, to allow the compiler's generic function overload resolution to determine which implementation of each math function to use. This is a relatively large change, but it also makes the file significantly easier to understand by reducing the use of macros. Differential Revision: https://developer.blender.org/D14113
2022-02-16BLI: Fix compilation error caused by rBa9f023e22638Clément Foucault
Explicitly referencing the typename fixes the issue.
2022-02-16Cleanup: spelling in commentsCampbell Barton
2022-02-15Fix: Build error in debug buildHans Goudey
Error in a9f023e226389461b1140
2022-02-15BLI: Change dependencies in vector math filesHans Goudey
This patch reverses the dependency between `BLI_math_vec_types.hh` and `BLI_math_vector.hh`. Now the higher level `blender::math` functions depend on the header that defines the types they work with, rather than the other way around. The initial goal was to allow defining an `enable_if` in the types header and using it in the math header. But I also think this operations to types dependency is more natural anyway. This required changing the includes some files used from the type header to the math implementation header. I took that change a bit further removing the C vector math header from the C++ header; I think that helps to make the transition between the two systems clearer. Differential Revision: https://developer.blender.org/D14112
2022-02-15Cleanup: Use C++ math functionsHans Goudey
Use functions from the `math` and `std` namespaces instead of from `BLI_math_vector.h`.
2022-02-11File headers: manually convert files to use SPDX headersCampbell Barton
Also add BSD-2-Clause to SPDX license list.
2022-02-11File headers: add missing copyright, add MIT to SPDX licensesCampbell Barton
2022-02-11File headers: use SPDX for Zlib licenseCampbell Barton
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-11Cleanup: clang-formatCampbell Barton
2022-02-10GPencil: Update-on-write using update cacheFalk David
This implements the update cache described in T95401. The cache is currently only used for drawing strokes and sculpting (using the push brush). **Note: Making use of the cache throughout grease pencil will have to be done incrementally in other patches. ** The update cache stores what elements have changed in the original data-block since the last time the eval object was updated. Additionally, the update cache can store multiple updates to the data and minimizes the number of elements that need to be copied. Elements can be tagged using `BKE_gpencil_tag_full_update` and `BKE_gpencil_tag_light_update`. A full update means that the element itself will be copied but also all of the content inside. E.g. when a layer is tagged for a full update, the layer, all the frames inside the layer and all the strokes inside the frames will be copied. A light update means that only the properties of the element are copied without any of the content. E.g. if a layer is tagged with a light update, it will copy the layer name, opacity, transform, etc. When the update cache is in use (e.g. elements have been tagged) then the depsgraph will not trigger a copy-on-write, but an update-on-write. This means that the update cache will be used to determine what elements have changed and then only those elements will be copied over to the eval object. If the update cache is empty or the data block was tagged with a full update, we always fall back to a copy-on-write. Currently, the update cache is only used by the active depsgraph. This is because we need to free the update cache after an update-on-write so it's reset and we need to make sure it is not freed or read by other depsgraphs. Co-authored-by: @yann-lty This patch was contributed by The SPA Studios. Reviewed By: sergey, antoniov, #dependency_graph, pepeland, mendio Maniphest Tasks: T95401 Differential Revision: https://developer.blender.org/D13984
2022-02-10Cleanup: copyright in headers, spelling in commentsCampbell Barton
- Order year consistently. - Minor consistency (case, double-spacing). - Correct typos.
2022-02-10Cleanup: remove overly detailed contact info, correct md5 copyrightCampbell Barton
Also remove copyright text with no assignment.
2022-02-09Cleanup: make file headers more consistentCampbell Barton
Also some descriptive text into doc-strings.
2022-02-09BLI: wrap parallel_invoke from tbbJacques Lucke
2022-02-09Cleanup: move file descriptions into doxygen file sectionCampbell Barton
Continuation of 19100aa57d847699d17527b76c2fab1f4ab88885.
2022-02-09Cleanup: remove "The Original Code is: ..." from code commentsCampbell Barton
This is almost always meaningless as most code has changed since the comment was added. Besides this, version control can be used to check if/when a file was modified. Some cases of this were kept when they contain details about the original copyright holder.
2022-02-08Fix T91253: Slow pose bone selection with many bonesCampbell Barton
Viewport cull bones during selection to avoid depth-picking reading the depth buffer for bones that aren't in the viewport. Files with thousands of bones could hang blender for seconds while selecting. The issue could still happen with overlapping bones or when zoomed out so all bones are under the cursor, however in practice this rarely happens. Now files with many bones select quickly. Related changes include: - Split `BKE_pchan_minmax` out of `BKE_pose_minmax`. - Add `mat3_to_size_max_axis` to return the length of the largest axis (used for scaling the radius). Reviewed By: sybren Maniphest Tasks: T91253 Ref D13990
2022-02-07Cleanup: clang-formatCampbell Barton
2022-02-04Cleanup: avoid generating some functions in all translation unitsJacques Lucke
Every translation unit that included the modified headers generated some extra code, even though it was not used. This adds unnecessary compile time overhead and is annoying when investigating the generated assembly.
2022-02-04BLI: use methods specialized for finding a single char in StringRefAras Pranckevicius
Previously, these methods used the more generic substring-finding algorithm, which is more complex and slower. Using the more specialized methods results in a noticable speedup in the obj importer (D13958). Differential Revision: https://developer.blender.org/D14012
2022-02-02Merge branch 'blender-v3.1-release'Jacques Lucke
2022-02-02BLI: fix memory leak in VectorSetJacques Lucke
The leak happened when the vector set had to grow when it was empty but it had allocated the keys array already.
2022-01-31Cleanup: spelling in commentsCampbell Barton
2022-01-31Cleanup: use our own conventions for tags in commentsCampbell Barton
2022-01-28Remove compilation warnings TexResult.Jeroen Bakker
2022-01-28DrawManager: Image engine support huge images.Jeroen Bakker
Adding better support for drawing huge images in the image/uv editor. Also solved tearing artifacts. The approach is that for each image/uv editor a screen space gpu texture is created that only contains the visible pixels. When zooming or panning the gpu texture is rebuild. Although the solution isn't memory intensive other parts of blender memory usage scales together with the image size. * Due to complexity we didn't implement partial updates when drawing images tiled (wrap repeat). This could be added, but is complicated as a change in the source could mean many different changes on the GPU texture. The work around for now is to tag all gpu textures to be dirty when changes are detected. Original plan was to have 4 screen space images to support panning without gpu texture creation. For now we don't see the need to implement it as the solution is already fast. Especially when GPU memory is shared with CPU ram. Reviewed By: fclem Maniphest Tasks: T92525, T92903 Differential Revision: https://developer.blender.org/D13424
2022-01-28Cleanup: add compiler attributes to BLI_path functionsCampbell Barton
2022-01-28BLI_path: assert passing relative paths to BLI_path_cmp_normalizedCampbell Barton
Assert when "//" prefixed relative paths are passed to BLI_path_cmp_normalized as this can't be expanded and it's possible the paths come from different blend files.
2022-01-28Cleanup: indentation for CMake filesCampbell Barton
Also minor white-space & case changes.
2022-01-28Cleanup: spelling in commentsCampbell Barton
Also minor wording improvements.
2022-01-28Cleanup: rename BLI_paths_equal to BLI_path_cmp_normalizedCampbell Barton
Changes to recent addition: c85c52f2ce478ab0e30c5e93fd5a5cb812db232f. Having both BLI_paths_equal and BLI_path_cmp made it ambiguous which should be used, as `BLI_paths_equal` wasn't the equivalent to `BLI_path_cmp(..) == 0` as it is for string equals macro `STREQ(..)`. It's also a more specialized function which is not used for path comparison throughout Blender's internal path handling logic. Instead rename this `BLI_path_cmp_normalized` and return the result of `BLI_path_cmp` to make it clear paths are modified before comparison. Also add comments about the conventions for Blender's path comparison as well as a possible equivalent to Python's `os.path.samefile` for checking if two paths point to the same location on the file-system.
2022-01-27BLI_float4x4: Add operator[]Clément Foucault
This makes porting existing code using `float[4][4]` easier.
2022-01-27Revert "Cleanup: Remove unused variables in winstuff.c"Ray Molenkamp
This reverts commit 32a96b80a349f30a878d82aaa1ed1ed574cef277. this needed an ifdef, not a removal, will land a proper fix later
2022-01-27Cleanup: Remove unused variables in winstuff.cRay Molenkamp
This clears up 4 unused variable warnings coming from BLI_windows_register_blend_extension
2022-01-27USD Preview Surface material export.Michael Kowalski
Add `USD Preview Surface From Nodes` export option, to convert a Principled BSDF material node network to an approximate USD Preview Surface shader representation. If this option is disabled, the original material export behavior is maintained, where viewport setting are saved to the Preview Surface shader. Also added the following options for texture export. - `Export Textures`: If converting Preview Surface, export textures referenced by shader nodes to a 'textures' directory which is a sibling of the USD file. - `Overwrite Textures`: Allow overwriting existing texture files when exporting textures (this option is off by default). - `Relative Texture Paths`: Make texture asset paths relative to the USD. The entry point for the new functionality is `create_usd_preview_surface_material()`, called from `USDAbstractWriter::ensure_usd_material()`. The material conversion currently handles a small subset of Blender shading nodes, `BSDF_DIFFUSE`, `BSDF_PRINCIPLED`, `TEX_IMAGE` and `UVMAP`. Texture export is handled by copying texture files from their original location to a `textures` folder in the same directory as the USD. In-memory and packed textures are saved directly to the textures folder. This patch is based, in part, on code in Tangent Animation's USD exporter branch. Reviewed By: sybren, HooglyBoogly Differential Revision: https://developer.blender.org/D13647
2022-01-26BLI_string_ref: Add back missing rfind()Clément Foucault
Must have been removed in a bad merge or something.
2022-01-24Cleanup: sort cmake file listsCampbell Barton
2022-01-24Cleanup: Grammar: its self vs. itselfHans Goudey
2022-01-24Cleanup: spelling in commentsCampbell Barton
2022-01-20Geometry Nodes: Curve Primitive ArcCharlie Jolly
This adds a new curve primitive to generate arcs. Radius mode (default): Generates a fixed radius arc on XY plane with controls for Angle, Sweep and Invert. Points mode: Generates a three point curve arc from Start to End via Middle with an Angle Offset and option to invert the arc. There are also outputs for arc center, radius and normal direction relative to the Z-axis. This patch is based on previous patches D11713 and D13100 from @guitargeek. Thank you. Reviewed By: HooglyBoogly Differential Revision: https://developer.blender.org/D13640
2022-01-20Cleanup: spelling in commentsCampbell Barton
2022-01-18Cleanup: spelling in commentsCampbell Barton
2022-01-18BLI: Add index_range method to VectorSetHans Goudey
This can simplify iterating through all of the indices in the vector, which is fairly common, since one of the benefits of the data structure is that all values are contiguous.