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-10-02Fix T81345: part four, fix handling of IDProperties in edit armature undo.Bastien Montagne
Specific armature editing undo code would duplicate and store a list of editbones. However, those are not linked to main data storage and should therefore never affect ID usercounting.
2020-10-02Fix T81345, part two: crash in depsgraph when freeing COW armature.Bastien Montagne
Freeing of bones' IDproerties from Armature `free_data` callback would always attempt to do user refcounting, which should never be done from that code. This would generate crashes in depsgraph/COW context e.g.
2020-10-02Cleanup: Move `EditBone` structure definition from `ED` to `BKE` area.Bastien Montagne
Access to this structure will be needed in BKE's armature code.
2020-10-02Fix T81200: Crash on certain armature select operators when OpenGL DepthPhilipp Oeser
Picking is disabled Affected were (at least) - Select Linked pick - Select Shortest Path Was originally caused by rB8b347fc2cdc6 [which got improved in rBfc8a7a44b200 - but only partially]. After removal of BONESEL_NOSEL we have to filter out -1 from the hits for any bone picking it seems (since armature drawing uses this). In rBfc8a7a44b200, this was done for 'ED_armature_edit_select_pick' (or 'get_nearest_editbonepoint' precisely), now do this for 'ed_armature_pick_bone_impl' as well. Reviewers: campbellbarton Maniphest Tasks: T81200 Differential Revision: https://developer.blender.org/D9080
2020-09-30Cleanup: convert gforge task ID's to phabricator formatValentin
Cleanup old tracker task format to the new. e.g: [#34039] to T34039 Ref D8718
2020-09-12Cleanup: Remove GLEW dependencies outside of GL moduleClément Foucault
2020-09-09Cleanup: reduce variable scopeJacques Lucke
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes
2020-09-03Fix T63125: Gpencil: bones cannot be selected in weightpaint modePhilipp Oeser
Some underlying functionality was not ready for greasepencil: - BKE_modifiers_get_virtual_modifierlist (now introduce dedicated BKE_gpencil_modifiers_get_virtual_modifierlist) - BKE_modifiers_is_deformed_by_armature - checks in drawing code - checks in (pose) selection code A couple of changes to make this work: - `eGpencilModifierType_Armature` has to be respected (not only `eModifierType_Armature`) - `OB_MODE_WEIGHT_GPENCIL` has to be respected (not only `OB_MODE_WEIGHT_PAINT`) -- (now use new `OB_MODE_ALL_WEIGHT_PAINT`) - `gpencil_weightmode_toggle_exec` now shares functionality from `wpaint_mode_toggle_exec` -- moved to new `ED_object_posemode_set_for_weight_paint` This patch will also set the context member "weight_paint_object" for greasepencil (otherwise some appropriate pose operators wont work when in weightpaint mode) Reviewed By: campbellbarton Maniphest Tasks: T63125 Differential Revision: https://developer.blender.org/D8483
2020-09-01Fix T79553: StretchTo constraint: Apply Pose changes bone lengthSybren A. Stüvel
Recompute Rest Length stored in the StretchTo constraint after applying the current pose as rest pose. The "Apply Pose as Rest Pose" operator applies the evaluated pose as rest pose, which means that the change in bone length from the StretchTo constraint is applied to the rest pose. The bug was caused by the fact that the StretchTo constraint wasn't updated for the new pose, and thus still applied the same scale factor to the new pose, effectively doubling its effect. The "Apply Pose as Rest Pose" operator now forces a recompute of the rest length cached in the StretchTo constraint data. As a result, the length of the bone before and after the pose is applied remains the same. The X and Z scale (perpendicular to the bone length) are reset to 1.0, as with the applied pose the bone isn't stretched or squashed any more.
2020-08-26Merge branch 'blender-v2.90-release' into masterCampbell Barton
2020-08-26Fix T80098: Mesh deform doesn't update in edit modeCampbell Barton
Use BKE_mesh_wrapper API access to access mesh coordinates for modifier evaluation. Call BKE_mesh_wrapper_ensure_mdata when binding since it's a one off operation. Regression from deaff945d0b96. Reviewed by: @brecht Ref D8709
2020-08-25Fix T80077: Objects disappear when joining with a zero scaled axisCampbell Barton
Use invert_m4_m4_safe_ortho when joining objects so zero scaled axis doesn't cause all points to be scaled to zero. Instead geometry is left un-scaled on degenerate axes. Report a warning in this case since users may want to adjust the active objects scale.
2020-08-21Fix T79987: Crash when joining objectsJulian Eisel
Mistake in b077de086e14. I did the same fix for a few operators there, but missed the object "Join" one. The joining operator changes the layer content. So it must send a notifier for that. Before b077de086e14 that didn't cause a noticeable issue, because the Outliner happened to listen to other notifiers (active/selection changes) the operator sent and fully rebuilt its tree in response. Now missing these notifiers can be more problematic, since we try to avoid more rebuilds. Added comments to the notifier types to avoid at least this pitfall.
2020-08-08Cleanup: use array syntax for sizeof with fixed valuesCampbell Barton
Also order sizeof(..) first to promote other values to size_t.
2020-08-07Merge branch 'blender-v2.90-release' into masterJacques Lucke
2020-08-07Code Style: use "#pragma once" in source directoryJacques Lucke
This replaces header include guards with `#pragma once`. A couple of include guards are not removed yet (e.g. `__RNA_TYPES_H__`), because they are used in other places. This patch has been generated by P1561 followed by `make format`. Differential Revision: https://developer.blender.org/D8466
2020-08-04Merge branch 'blender-v2.90-release'Sergey Sharybin
2020-08-04Pose channel: Add session UUIDSergey Sharybin
Allows to identify pose channels more reliably than by the pointer.
2020-08-02Cleanup: pass const matricesCampbell Barton
Also order return matrices last.
2020-08-02Cleanup: pass const matricesCampbell Barton
Also order return matrices last.
2020-08-01Cleanup: spelling (initialized)Campbell Barton
2020-07-21Fix T78994: Clear selected pose doesn't work without animationHans Goudey
It looks like the code left this as a todo, but the basic solution is to add an extra parameter to BKE_bose_rest to check whether bones are selected before reseting them. I also corrected the operator description which said it acted on only selected bones even when there is an option to turn that off. The "act on selected" is generally implied for Blender's operators anyway. Differential Revision: https://developer.blender.org/D8319
2020-07-20T77086 Animation: Passing Dependency Graph to DriversSybren A. Stüvel
Custom driver functions need access to the dependency graph that is triggering the evaluation of the driver. This patch passes the dependency graph pointer through all the animation-related calls. Instead of passing the evaluation time to functions, the code now passes an `AnimationEvalContext` pointer: ``` typedef struct AnimationEvalContext { struct Depsgraph *const depsgraph; const float eval_time; } AnimationEvalContext; ``` These structs are read-only, meaning that the code cannot change the evaluation time. Note that the `depsgraph` pointer itself is const, but it points to a non-const depsgraph. FCurves and Drivers can be evaluated at a different time than the current scene time, for example when evaluating NLA strips. This means that, even though the current time is stored in the dependency graph, we need an explicit evaluation time. There are two functions that allow creation of `AnimationEvalContext` objects: - `BKE_animsys_eval_context_construct(Depsgraph *depsgraph, float eval_time)`, which creates a new context object from scratch, and - `BKE_animsys_eval_context_construct_at(AnimationEvalContext *anim_eval_context, float eval_time)`, which can be used to create a `AnimationEvalContext` with the same depsgraph, but at a different time. This makes it possible to later add fields without changing any of the code that just want to change the eval time. This also provides a fix for T75553, although it does require a change to the custom driver function. The driver should call `custom_function(depsgraph)`, and the function should use that depsgraph instead of information from `bpy.context`. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D8047
2020-07-13Clang Tidy: enable readability-non-const-parameter warningJacques Lucke
Clang Tidy reported a couple of false positives. I disabled those `NOLINTNEXTLINE`. Differential Revision: https://developer.blender.org/D8199
2020-07-07Cleanup: spellingCampbell Barton
2020-07-03Cleanup: Editors/Armature, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/editors/armature` module. No functional changes.
2020-07-01Cleanup: spellingCampbell Barton
2020-06-30Cleanup: spellingCampbell Barton
2020-06-24Cleanup: unused struct membersCampbell Barton
2020-06-23Transform: default to median center instead of boundsCampbell Barton
When neither bounds or median is selected, snapping the cursor to the selection was using bounds which often doesn't give useful results. Resolves T78135
2020-06-18Cleanup: redundant parenthesisCampbell Barton
2020-06-17Cleanup: name mesh join functions using ED_{type} prefixCampbell Barton
2020-06-16Cleanup: unused headers, spellingCampbell Barton
2020-06-10Fix T77560: Bone selection crashesCampbell Barton
The was caused by 8b347fc2cdc67 as the old BONESEL_NOSEL flag handled the -1 case (used for none). Instead of checking for -1, remove these elements from the array as selection code makes decisions based on the number of hits detected.
2020-06-05CodeCleanup: Supressed warningJeroen Bakker
2020-06-05Code Cleanup: fcurve function namingJeroen Bakker
2020-06-05Cleanup: remove braces from previous commit (no functional changes)Campbell Barton
2020-06-05Armature: increase maximum delectable bones from 4096 to 8192Campbell Barton
Remove BONESEL_NOSEL which isn't needed. Addresses issue raised in T77378.
2020-05-19Merge branch 'blender-v2.83-release'Philipp Oeser
2020-05-19Fix T76717: Set Rotation Mode Incorrectly Recalculates Bone Rotation In Pose ↵Sebastian Parborg
Mode The issue was that we didn't convert the current rotational values. We simply just switched mode without doing any data conversions.
2020-05-19Made pose push/relax to breakdown behave smooth on rotationsSebastian Parborg
A follow up to T67212. I missed that the rotation interpolation had its own code path. The previous rotation push code was actually wrong (but smooth). Now all of the actions behave correctly and is smoothly interpolated.
2020-05-19Fix T76689: Armature layers not indicating the existence of bonesSybren A. Stüvel
From what I can see, there are two issues at play in {T76689} and its merged-in report {T76590}: - In Blender ≤ 2.79 the bone layer dots were updated in the draw code. This ensured the info was up to date before drawing. This is no longer possible, as the drawing code uses evaluated objects, and those should not be written to. This has been addressed in rB709f126e8143 by calling the update function explicitly in various places in the code. The problem is that this wasn't added to all necessary spots. - When in edit mode, changes are made to the edit bones but not to the 'actual' bones (this is synced when exiting edit mode). This causes undo to mess up the layer indicators. I think both issues can be addressed by having the dependency graph update the used layer info as part of the armature evaluation. This will make the undo system work properly, and allows the removal of some `BKE_armature_refresh_layer_used()` from various places. There is still the issue that there are two functions (`BKE_armature_refresh_layer_used()` and `ED_armature_edit_refresh_layer_used()`) that are both responsible for updating `bArmature::layer_used`. This is a trickier thing to solve, though, as the definition of the `EditBone` struct resides in the armature editor module. This means that blenkernel can't iterate over edit bones, but on the other hand the dependency graph shouldn't call any editor functions either. This is why I left the `ED_armature_edit_refresh_layer_used()` calls untouched. The downside of recalculating `layer_used` from the dependency graph (at least in the way that I did it now) is that it is called every time a user moves a bone in pose mode. This frequency of updates is not necessary. Differential Revision: https://developer.blender.org/D7709
2020-05-18Merge branch 'blender-v2.83-release'Campbell Barton
2020-05-18Fix T76852: Breakdowner remembers limits last usedCampbell Barton
2020-05-13Fix T76717: Set Rotation Mode Incorrectly Recalculates Bone Rotation In Pose ↵Sebastian Parborg
Mode The issue was that we didn't convert the current rotational values. We simply just switched mode without doing any data conversions.
2020-05-08Fix T76498: Refactoring - Rename BKE modifiers funtionsAntonio Vazquez
2020-05-02Merge branch 'blender-v2.83-release'Nathan Craddock
2020-05-02Revert "Outliner: Fix selection sync for various operators"Nathan Craddock
This reverts commit 92d62148bed1cf68ed674b4a9c6ba6440a697ca8. When merging in from blender-v2.83-release the merge was somehow rebased after viewing the log.
2020-05-02Outliner: Fix selection sync for various operatorsNathan Craddock
Add missing outliner selection sync tagging for various non-outliner operators. * Curve separate * Grease Pencil separate * Mesh separate * Make instances real * 3D view paste * Sequencer paste * Armature delete, dissolve, separate, duplicate, subdivide, extrude, click extrude, primitive add * Pose Group select, delete Resolves T71404