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-16Merge branch 'blender-v3.1-release'Philipp Oeser
2022-02-16Fix T95787: Texture paint: Apply Camera Image crash for certain imagesPhilipp Oeser
This does not happen with **any** image, but with images that have ID properties. ID properties are used to store view projection matrices (e.g. for reprojection with `Image from View` or `Quick Edit` -- these are the ones we are interested in), but of course they can be used for anything else, too. The images in the file from the report have ID properties from an Addon for example. So the crash can reliably be reproduced with **any** image doing the following: ``` bpy.data.images['myImage']['myIDprop'] = "foo" ``` This would lead code in `texture_paint_camera_project_exec` to think the needed `view_data` is on the image (but in reality it was just some other IDprop). Solution is simple: just check `view_data` is really valid after getting it from the IDprops. Maniphest Tasks: T95787 Differential Revision: https://developer.blender.org/D14116
2022-02-16UV: move sticky selection from image space into tool settingsCampbell Barton
Having this setting stored in the image space caused low level selection logic to have to pass around the image space (which could be NULL in some cases). Use the tool-settings instead since there doesn't seem to be much/any advantage in having this setting per-space.
2022-02-16Cleanup: spelling in commentsCampbell Barton
2022-02-16Cleanup: clang-format, use static sets, sort struct declarationsCampbell Barton
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-15Curves: add initial sculpt modeJacques Lucke
This adds a new sculpt mode to the experimental new curves object. Currently, this mode can only be entered and exited, nothing else. The main initial purpose of this node will be to use it for hair grooming. The patch also adds the `editors/curves/` directory for the new curves object, which will be necessary for many other things as well. I added a completely new mode (`OB_MODE_SCULPT_CURVES`), because `OB_MODE_SCULPT` seems to be rather specific to meshes, and reusing it doesn't seem worth the trouble. The tools/brushes used in mesh vs. curves sculpt mode are quite distinct as well. I had to add DNA_userdef_enums.h to make the patch compile with C++ (forward declaration of enums isn't allowed). This follows the same pattern that we use for other enums in dna. Differential Revision: https://developer.blender.org/D14107
2022-02-15RNA: add RNA_collection_is_empty & RNA_property_collection_is_emptyCampbell Barton
Some collections needed to be iterated over to count their length. Provide a function to check if the collection is empty to avoid this.
2022-02-15Merge branch 'blender-v3.1-release'Campbell Barton
2022-02-15Fix T94085: Crash with empty stroke listCampbell Barton
2022-02-15Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-15Fix T95720: Spreadsheet missing volume grid infoHans Goudey
The cell drawing code in 474adc6f883c2d5a854d7 was missing an implementation for virtual arrays of strings.
2022-02-14Merge branch 'blender-v3.1-release'Thomas Dinges
2022-02-14Cleaunp: Modify commentAntonio Vazquez
2022-02-14GPencil: Fill Dilate using negative values contract the fill areaAntonio Vazquez
This is requested by artist for some animation styles where is necessary to fill the area, but create a gap between fill and stroke. Also some code cleanup and fix a bug in dilate for top area. Reviewed By: pepeland, mendio Differential Revision: https://developer.blender.org/D14082
2022-02-14Fix T95320: CacheFile templates crash when used through PythonKévin Dietrich
The crash is caused as we did not check that the RNA pointer is null before trying to use it. This moves the existing checks from the modifier panels into the template functions so the logic is a bit centralized.
2022-02-14Merge branch 'blender-v3.1-release'Jeroen Bakker
2022-02-14Phase out IMA_GPU_REFRESH.Jeroen Bakker
IMA_GPU_REFRESH is replaced by BKE_image_partial_update_mark_full_update and should not be used anymore.
2022-02-13Cleanup: Clang tidyHans Goudey
Use using instead of typedef, remove redundant string init, use "empty", address qualified auto, use nullptr.
2022-02-12Fix (unreported): Issues with 'SNAP_NOT_SELECTED' for pose and edit modesGermano Cavalcante
This is a regression partially introduced in rB0a6f428be7f0. Bones being transformed into edit mode were snapping to themselves. And the bones of the pose mode weren't even snapping. (Curious that this was not reported).
2022-02-12Fix T94860: GPencil - Avoid drift in Sculpt when mouse/pen is not movedAntonio Vazquez
This fix avoid the drif checking if the previous position is equals to new one, in this case, the pen has not moved and can be canceled. Differential Revision: https://developer.blender.org/D13870
2022-02-11UI: Improve node drop shadowLeon Schittek
Improve the nodes' drop shadow by making it scale with the view and replace the loop for the alpha calculation with something more explicit. The amount of drop shadow softness was scaled with the zoom level and therefore had a fixed screen space size. DPI and UI scale weren't taken into account either. This patch fixes both issues by basing the shadow softness on the `widget_unit` that scales correctly in zoomable views and takes UI scale etc. into account. Differential Revision: https://developer.blender.org/D13356
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-10Merge branch 'blender-v3.1-release'Hans Goudey
2022-02-10Fix T95613: remove anonymous attributes when converting objectJacques Lucke
This is the same behavior as when applying a geometry nodes modifier that adds anonymous attributes.
2022-02-10Refactor: Move PBVH update tag out of MVertHans Goudey
This is part of the project of converting `MVert` into `float3`. (more details in T93602), The pbvh update flag is removed and replaced with a bitmap stored in the PBVH structure. This patch is similar to D13878. This is mainly setup for an eventual performance improvement by removing the extra data from mesh vertices, but if it's consistent with testing in the other patch doing the same thing for another "temp tag", then it may actually increase the speed of sculpt code slightly, since less memory needs to be loaded when checking/changing the flags. Differential Revision: https://developer.blender.org/D14000
2022-02-10Merge branch 'blender-v3.1-release'Sergey Sharybin
2022-02-10Fix T95664: missing update after changing active output nodeJacques Lucke
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-10Fix T84486: NLA, disable "Sync Length" after splitBrad Clark
Turn off "Sync Length" when splitting an NLA strip. The NLA Strip-Action Clip has a setting called "Sync Length" that is on by default and helps to update the length of the clip to the current actions keyframes so the strip shows the entire actions stored animation. When you split one of these strip-action clips in the NLA to trim it shorter or to move it somewhere else in the NLA tracks to blend or work with, the "Sync Length" setting stays checked on. You can have many strips in the NLA that all look to the same action, if you split one strip , you now have two strips showing or linked to the same action. To see or edit keyframes on a strip, you enter tweak mode. When you exit tweak mode, if "Sync Length" is active on the strip-action clip settings, the strip length is changed/reset to match the action keys. When you have many clips, this causes all of them to evaluate and update no matter where they are in the NLA. This destroys/undoes all the user work to trim down and place the clips in the NLA. **Description of the proposed solution:** This patch/change would turn off, the "Sync Length" setting when the split tool was used on a strip/action clip to help protect the users choice to trim and keep the clip that length. It doesn't change the ability to turn the setting back on or off, it just makes sure that the user doesn't accidentally or unknowingly loose work. The same process happens when an action is created that has a "manual range" set that is different than the length of the actions start-end keyframes. It makes sense to do the same thing for the split tool. **Alternative solutions:** While the user could know this and turn off this setting by hand, it is easy to forget and or the user might think that it only happened to the one clip they were editing and not realize it happened to all the trimmed versions, changing the users choice without the user knowing it happened. **Limitations of the proposed solution:** It only fixes the split tool, if another tool was created and some how impacted the clip length we would need to have that tool also take the sync length into account. Reviewed By: sybren Maniphest Tasks: T84486 Differential Revision: https://developer.blender.org/D10168
2022-02-10Cleanup: copyright in headers, spelling in commentsCampbell Barton
- Order year consistently. - Minor consistency (case, double-spacing). - Correct typos.
2022-02-09VSE: Fix sound strip not aligned with movie stripRichard Antalik
Strip aligning wasn't done when length of 2 strip is equal, but since these strips are aligned according to position in stream this can produce offset.
2022-02-09Cleanup: non-standard license formatting, minor changesCampbell Barton
2022-02-09Cleanup: make file headers more consistentCampbell Barton
Also some descriptive text into doc-strings.
2022-02-09Merge branch 'blender-v3.1-release'Jacques Lucke
2022-02-09Fix T95640: missing null check in previous commitJacques Lucke
2022-02-09Merge branch 'blender-v3.1-release'Jacques Lucke
2022-02-09Fix T91840: do not create invalid links when inserting a nodeJacques Lucke
Differential Revision: https://developer.blender.org/D14050
2022-02-09Cleanup: move file descriptions into doxygen file sectionCampbell Barton
Continuation of 19100aa57d847699d17527b76c2fab1f4ab88885.
2022-02-09Cleanup: move file descriptions into doxygen file sectionCampbell Barton
Also other minor corrections & reformat particle system copyright.
2022-02-09Cleanup: simplify copyright headers for sequence & imbufCampbell Barton
2022-02-08Fix T91871: Symmetrize Armature on custom bone shapePaolo Acampora
Symmetrize Armature now also symmetrizes the transform of custom bone shapes. Adds a new property to `bpy.ops.armature.symmetrize`: //Parameters//: - **direction **(enum in ['NEGATIVE_X', 'POSITIVE_X'], (optional)) – **Direction**, Which sides to copy from and to (when both are selected) - **custom_shape **(enum in ['SYMMETRIZE_SAME', 'SYMMETRIZE_ALL', 'SYMMETRIZE_NONE'], (optional)) – **Custom Shapes**, Wether to symmetrize non symmetric custom bone shapes, all custom shapes, or none at all //Rationale//: Reviewed By: #animation_rigging, Mets, sybren Maniphest Tasks: T91871 Differential Revision: https://developer.blender.org/D13416
2022-02-08BLF: Enable Filtering of woff and woff2 FontsHarley Acheson
Add files with extension ".woff" and ".woff2" to FILE_TYPE_FTFONT file type. Allows selecting and using these types of font files. See D13822 for more details. Differential Revision: https://developer.blender.org/D13822 Reviewed by Campbell Barton
2022-02-08LibOverride: Add 'hierarchy root ID' info.Bastien Montagne
This change will make handling of liboverrides hierarchies (especially resyncing) much easier and efficient. It should also make it more resilient to 'degenerate' cases, and allow proper support of things like parenting an override to another override of the same linked data (e.g. a override character parented to another override of the same character). NOTE: this commit only implements minimal changes to add that data and generate it for existing files on load. Actual refactor of resync code to take advantage of this new info will happen separately.
2022-02-08Merge branch 'blender-v3.1-release'Philipp Oeser
2022-02-08Fix T94415: Nodes: poor selection behavior inside frame nodesPhilipp Oeser
Previously, node selection made no distinction between a frame node and other nodes. So a frame node would be selected by their whole rect or center (depending on box/lasso/circle select). As a consequence of this, box and lasso could not pratically be started inside a frame node (with the intention to select a subset of contained child nodes) because the frame would be selected immediately and tweak-transforming started. Circle selecting would always contain the frame node as well (making transforming a subset of nodes without also transforming the whole frame impossible). Now change selection behavior so that for all selection modes only the border [the margin area that is automatically added around all nodes, see note below] of a frame node is considered in selection. This makes for a much more intuitive experience when arranging nodes inside frames. note: to make the area of interest for selection/moving more obvious, the cursor changes when hovering over (as is done for resizing). note: this also makes the resize margin consistent with other nodes. note: this also fixes right resize border (was exclusive instead of inclusive as every other border) Also fixes T46540.
2022-02-08Mesh: add option to select vertices by similar vertex creaseKévin Dietrich
This adds an option to the "Select Similar" operator in edit mode to select vertices based on vertex crease similarity. The implementation follows that of the edge crease, with a 1-dimensional KD-tree used to store and retrieve vertex indices base on crease values. To maintain compatibility with old files (scripts), the `SIMEDGE_CREASE` enumeration identifier remains `CREASE`, while the one for the new `SIMVERT_CREASE` is `VCREASE` to follow the naming convention of other enum values. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D14037
2022-02-08UI: Change computation of node socket position to align with labelDominik Fill
This Diff changes the computation of the input and output socket position to being always aligned with its corresponding label. Reviewed By: campbellbarton Ref D14025
2022-02-08Cleanup: clang-formatCampbell Barton
2022-02-07Curves: Rename "Hair" types, variables, and functions to "Curves"Hans Goudey
Based on discussions from T95355 and T94193, the plan is to use the name "Curves" to describe the data-block container for multiple curves. Eventually this will replace the existing "Curve" data-block. However, it will be a while before the curve data-block can be replaced so in order to distinguish the two curve types in the UI, "Hair Curves" will be used, but eventually changed back to "Curves". This patch renames "hair-related" files, functions, types, and variable names to this convention. A deep rename is preferred to keep code consistent and to avoid any "hair" terminology from leaking, since the new data-block is meant for all curve types, not just hair use cases. The downside of this naming is that the difference between "Curve" and "Curves" has become important. That was considered during design discussons and deemed acceptable, especially given the non-permanent nature of the somewhat common conflict. Some points of interest: - All DNA compatibility is lost, just like rBf59767ff9729. - I renamed `ID_HA` to `ID_CV` so there is no complete mismatch. - `hair_curves` is used where necessary to distinguish from the existing "curves" plural. - I didn't rename any of the cycles/rendering code function names, since that is also used by the old hair particle system. Differential Revision: https://developer.blender.org/D14007