Commit Graph

80305 Commits

Author SHA1 Message Date
83dc97ccc0 Cleanup: Use canonical variable name 2020-09-25 15:54:25 -05:00
9b6c5268bc Cleanup: Decrease indentation by returning early
Where the if statement was just a check for an error or an unhandled
condition and there are no else statements, the rest of the function
doesn't need to be indented.
2020-09-25 15:51:56 -05:00
4842dd022f Cleanup: Declare variables where initialized, lower scope
Also use "r_" prefix for return arguments in a few places.
2020-09-25 14:58:29 -05:00
Henrik Dick
bea4505744 Fix Tests for Weld Modifier with KD-Tree
Fixes the failing tests and reintroduces the KD-Tree solution.

Reviewed By: mano-wii

Differential Revision: https://developer.blender.org/D9013
2020-09-25 15:17:02 -03:00
1f6a1cee74 LibOverride: Cleanup: reserve debug messages to debug builds. 2020-09-25 19:11:23 +02:00
756656caff LibOverride: Better handling of cleanup of 'insert' operations in collections.
Before, it might have been possible in some cases (when there were no
items at all anymore in the collection) to miss that cleanup step,
leaving ghost useless and invalid operations around.
2020-09-25 19:11:23 +02:00
c6a9b62bb0 Fix T78343: Most properties of Ocean modifier should not be animatable.
Properties that are only used when initializing the simulation cannot be
animated (the changes in their value would not be taken into account).
2020-09-25 19:11:23 +02:00
ee51283da1 LibOverride: Tweak messages when some sub-item is not found when applying overrides. 2020-09-25 19:11:23 +02:00
d951239e1d Fix T81161: Bad properties context panel placement loading old files
These breadcrumbs used to be a panel in 2.79 and 2.80 development.
If a file was saved in those versions, and the panels rearranged in a
version that didn't have this panel, its sortorder would be changed
even though it wasn't visible or even used in that version.

A simple fix is to use a new ID name for the new version of this
panel in 2.91. "Buttons" is an old name anyway.
2020-09-25 11:51:13 -05:00
e2fe405910 Cleanup: Miscellaneous code improvements
- Declare variables where initialized
- Return early in some cases
- Use "i" as an iteration index variable
- Use bool instead of int where applicable
2020-09-25 10:54:09 -05:00
4c46a09824 Fix constrain plane not being set in tranform code
Error introduced in rB388b9162469650c
2020-09-25 12:28:22 -03:00
90ce6dbf4c UI: Improve curve geometry property tooltips
These tooltips mostly just repeated the property names, which is not
helpful at all. Changing that leaves space to be much more specific
about what the properties actually do.

Differential Revision: https://developer.blender.org/D8994
2020-09-25 09:51:13 -05:00
682e68b6ea Cleanup: silence [-Wshadow] warnings
Introduced in rBd5a6b3b18c5d.
2020-09-25 10:56:19 -03:00
388b916246 Fix T80937: Changing the contrain axis does not return to the scene orientation
This was the behavior in old versions of blender.

During a transformation operation, when pressing a contrain key, the chosen
orientation is that of the scene.

If you press the same key, the orientation changes to Global or Local.

However, if you choose another contrain axis with the orientation changed,
the orientation does not return to the set for the scene.

It remains Global or Local.

Now when changing a contrain axis, no matter what the current orientation is,
it always returns to the scene orientation.
2020-09-25 10:24:05 -03:00
d5a6b3b18c Weld Modifier: Disable the KD Tree solution
This solution is causing the modifier regression test to fail.

Also fix a mistake to allocate `vert_dest_map` twice.
2020-09-25 09:37:59 -03:00
64583f3e8d Animation: set Action idroot at assignment instead of just at evaluation
Actions are either locked to a specific ID type, or "floating". Actions
in the floating state are now locked when they are assigned to an ID block.
Previously (rB94b99b5d4a7c20cf2) this was done at evaluation time, which
caused various problems:
- The ID type was set on the evaluated copy, and inconsistently flushed
  back to the original.
- A newly created Action could not be assigned to an Action constraint,
  unless a depsgraph evaluation was be forced first.

This is now resolved by calling `BKE_animdata_set_action()` to set the
action (instead of direct assignment) where possible, and calling
`BKE_animdata_action_ensure_idroot()` otherwise.

Manifest Task: https://developer.blender.org/T80986
2020-09-25 14:20:59 +02:00
5419f9a845 Cleanup: animation, reduce complexity of RNA update function
Reduce complexity of `rna_SpaceDopeSheetEditor_action_update()` by flipping
conditions and returning early.

The depsgraph tagging has slightly changed, in that the depsgraph is not
tagged at all when there is no actual animation data added. I still see
this as a non-functional change, though, as in that case nothing changed
and tagging and re-evaluating wouldn't make any actual difference.

No functional changes.
2020-09-25 14:20:59 +02:00
8ffd03aef7 Cleanup: animation, remove commented-out code
The code was commented out in rB6307c65534f6d5cf29d08220cea0dbcca9a0e118,
11 years ago.

No functional changes.
2020-09-25 14:20:59 +02:00
2ef68edad8 Cleanup: animation, deduplicate "can edit action" logic
Move "action editable" check from RNA code to Blender kernel
`BKE_animdata_action_editable()`.

No functional changes.
2020-09-25 14:20:59 +02:00
2e1339bc0b Cleanup: document and simplify BKE_animdata_set_action()
Simplify `BKE_animdata_set_action()` by flipping some conditions and using
early returns, and document which parameters can be `NULL`.

No functional changes.
2020-09-25 14:20:59 +02:00
0badb7f82d Fix T80998: DDS Image files are not displayed correctly
Blender 2.91 only. Due to recent refactoring the compressed texture
formats missed the conversion to its GL counterpart.
2020-09-25 13:11:44 +02:00
d587027015 Modifiers: add StructRNA pointer field to ModifierTypeInfo
This reduces the number of places that have to be modified
when a new modifier is added.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D9000
2020-09-25 12:49:18 +02:00
d15e8bdaa3 Modifiers: add icon field to ModifierTypeInfo
With this change `outliner_draw.c` does not have to be
edited anymore when a new modifier is added.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D8998
2020-09-25 12:45:30 +02:00
f057e92ae2 LibOverride: Fix some cleanup of unused override operations.
Handling of pointer replacements in collection items lead to validating
all operations for a given property, when some might actually be no more
valid and would need to be cleaned up.

Related to T81059, found while investigating it.
2020-09-25 11:52:18 +02:00
4a224451d1 LibOverride: Tweak messages when some sub-item is not found when applying overrides. 2020-09-25 11:52:18 +02:00
1a64f97b9e Fix T81126: Assert going to Texture Paint workspace without a UVMap
Assert happened as it could not create uv batches without an UVMap.
Solution is to only request those batches when the UVMaps are available.
2020-09-25 11:29:05 +02:00
c67873e49b LibOverride: Silence some more asserts.
Print out messages into console instead when se cannot find expected
data (this is actually normal when source library gets edited).

Note that there seems to be some issue with the 'auto-cleanup' mechanism
removing no more valid override rules on file save, will check on that
next.

Related to T81059, found while investigating it.
2020-09-25 11:07:04 +02:00
db76de147e Cleanup: SpaceGraph ED code: use boolean litterals when needed. 2020-09-25 10:24:32 +02:00
59afbf0c04 Fix T81157: Eevee MotionBlur steps setting make ao pass darker
Issue introduced by 68651534c2 due to an incorrect merge/rebase
It was resetting the AO buffer every time the time step happened.
2020-09-25 10:15:37 +02:00
8febaae9e4 Fix T81155: Keyframe.select_control_point True when unselected
Check the selection flag since BEZT_FLAG_TEMP_TAG might be set.
2020-09-25 11:13:32 +10:00
c79b913624 Object: Move Switch Active Objects to experimental
The operator has some problems with Undo, so better put it in
experimental for now.

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D9007
2020-09-25 02:51:31 +02:00
0106e17f07 Cleanup: Move function to proper section
The main panel drawing funciton should be in the "Drawing" section.
2020-09-24 14:43:02 -05:00
80c57fe35f Cleanup: Remove unused function 2020-09-24 14:39:23 -05:00
9910b5024e Fix part of asserts in LibOverride when resynching.
We can only re-apply overrides fron the old local overrides to the newly
generated ones after all IDs have been properly remapped and renamed.

Otherwise override operations based on ID names may fail.

Related to T81059, found while investigating it.
2020-09-24 21:08:27 +02:00
934b515bc1 Fix LibOverride Resync generating orphaned data-blocks.
Part of the code handling deletion of old, not needed anymore local
override IDs, was not working properly, effectively only deleting one
ID ever.

New code should also be a bit faster, though this should not be really
visible from user perspective.

Related to T81059, found while investigating it.
2020-09-24 21:08:27 +02:00
771d041c4c Fix (unreported) memory leak in Extrude mode of the Solidify modifier. 2020-09-24 21:08:27 +02:00
Henrik Dick
744f81c936 Weld Modifier: Use KD Tree in detecting the geometry to be welded
This commit replaces the BVH Tree currently used by the Weld Modifier
with the KD Tree used by `Merge > By Distance`.

This changes the result of the Weld Modifier to more closely match
`Merge > By Distance`.

There is also a big performance advantage.

Here is an overview (models in D8995):

| 2.90 (Duplicate Limit = 0) | 2.90 (Duplicate Limit = 1) | master (BVH) (Duplicate Limit = 1) | patch (KD) |
| 1.69s| 0.17s | 0.12s | 0.029s |

Differential Revision: https://developer.blender.org/D8995
2020-09-24 15:18:34 -03:00
7fb0cb2b93 Cleanup: Remove unecessary storage of search filter in uiBlock
Since the search is applied all in one phase, there is no need to store
a reference to the search filter in every uiBlock. Instead just pass it
as an argument to UI_block_apply_search_filter.
2020-09-24 11:22:30 -05:00
bdbe95578d Fix crash related to liboverride differential operations code.
Root of the issue is how we generate the storage ID for the differential
override operations.

However, since those are disabled anyway currently, simply comment out
creation of this copy for now, we can revisit this if/when we decide to
re-activate differential overrides.

Related to T81059, found while investigating it.
2020-09-24 18:14:56 +02:00
244cef6f00 LibOverride: Do not assert when failing to apply an override rule.
This is actually fairly common issue if lib data changes, just print out
an info message about it for now.
2020-09-24 18:14:56 +02:00
3997630b3a Cleanup: Break early in normal validation
Before we would continue checking normal array values even if we knew
that the normal array would be conidered valid.

Break early to avoid excess iterations and make the code more clear what
it is doing.

No functional changes.
2020-09-24 18:10:47 +02:00
119d0cd2ab Fix normal computation in opensubdiv when surface derivates are the same
In very rare occations, the returned derivates would be the same. This
would lead to the normal calculation breaking (zero normals).

Solution: Add this edge case to the other corner case checks.

Reviewed By: Sergey
2020-09-24 18:08:45 +02:00
0d7036b40e Fix T80424: Image not scaled when rendering
This is was caused by incorrectly set `preview_render_size` in VSE
rendering context. Value was set to `SEQ_PROXY_RENDER_SIZE_FULL`, but
it should be `SEQ_PROXY_RENDER_SIZE_SCENE` as scene render size is
being used.

Alternatively we can check for `context->for_render` in
`input_preprocess()`, but I think fix above is more correct.

Reviewed By: sergey, brecht

Maniphest Tasks: T80424

Differential Revision: https://developer.blender.org/D8838
2020-09-24 16:20:13 +02:00
6e138e90d0 Fix T80874: Actions inside NLA Strips are not copied to buffer/append
Restore NLA Action expansion code that was accidentally removed in
rBbed634c4f96.
2020-09-24 16:17:30 +02:00
58dc059ad3 Fix T81096, T81127: Errors with the typed value for x-axis constrain
`applyNumInput` does not write all axis values and does not consider
the orientation.
2020-09-24 10:36:01 -03:00
f3ac39b857 Fix T80708: FCurve modifiers change behavior after editing NLA clip
Tag an Action for recalculating animation when it's pushed down onto the
NLA stack, as its effective boundaries change. Normally an Action spans
all of the timeline, and the effects of Cycle modifiers are visible
everywhere. When the Action is converted to an NLA clip, the modifier's
effect should only be visible for the duration of the NLA clip.
2020-09-24 15:17:30 +02:00
0dfafa8124 NLA: remove tagging copy-on-write when tagging recalc-animation
Remove `ID_RECALC_COPY_ON_WRITE` when tagging `ID_RECALC_ANIMATION`; the
former is unnecessary when using the latter.

No functional changes.
2020-09-24 15:17:30 +02:00
424084eeb5 Cleanup: NLA, refactor condition, use early return
Simplify code by replacing `if (strip) { everything; }` with
`if (strip == NULL) { return; }`.

No functional changes.
2020-09-24 15:17:30 +02:00
7ba30d35d1 Fix T80727: Drivers: deleting all keyframes leaves an uneditable f-curve.
A NULL bezier pointer does not mean that the fcurve is not editable, it
only is if it actually has some baked sample points too.
2020-09-24 14:05:42 +02:00
748efc710c Fix (unreported) Smart UV Project not adding UVMap
Since porting this to C in rB850234c1b10a, Smart UV Project would not
add a UVMap (if none existed already) anymore.

Not having a UVMap already is a reasonable situation though when e.g.
starting off fresh by deleting an existing UVMap or also when applying
certain generative modifiers. This is also inconsistent with all other
unwrap operators (all of them will create a UVMap if none exists
already)

Differential Revision: https://developer.blender.org/D9001
2020-09-24 13:06:37 +02:00