Commit Graph

73524 Commits

Author SHA1 Message Date
2bbdf586d5 Gpencil: Fix unreported memory leak duplicating Brush
When the brush is duplicated, the grease pencil settings doesn't need to be recreated.
2019-11-26 19:05:07 +01:00
Robert Guetzkow
98dfb4dd1c Allow deletion of directories in the file browser
This diff allows to delete directories in the file browser. The commit https://developer.blender.org/rB8825250f5a85c0c16e74ed144dd2b4a7d752042f did not include this feature.

Reviewed By: Severin

Differential Revision: https://developer.blender.org/D6083
2019-11-26 18:54:24 +01:00
bf9c2e6fde Anim: added BKE_object_moves_in_time(object) function
This function exposes the already-existing static `object_moves_in_time()`
function, and optionally recursively checks the parent object for
animatedness as well.

I also added checking `AnimData::overrides` to
`BKE_animdata_id_is_animated()`. This ensures that, apart from the optional
recursion to the parent object, the function has the same functionality.
2019-11-26 17:59:27 +01:00
b21648ab36 Anim: made object param of BKE_animdata_id_is_animated() const
No functional changes.
2019-11-26 17:56:59 +01:00
f18ad385df Alembic export: don't assume transform is always animated
Instead of always writing the transform on every frame, it's now checked
whether the object is animated at all. This could be made stricter to
reduce false positives, for example by checking FCurves and drivers to
see whether translation/rotation/scale is animated. However, this
approach is already better than the `return true` we had before.

This commit adds the BKE_animdata_id_is_animated(id) function, which
returns true if the ID datablock has non-empty animation data. This is
determined by checking the the active action's fcurves, the drivers, and
NLA tracks.
2019-11-26 16:26:52 +01:00
a018a7fb0d Removed BKE_object_is_animated()
The function isn't used anywhere, and it's deceptively returning false
negatives. For example, `modifier_dependsOnTime()` will return `false`
for hook modifiers, even when the hook target is animated. Querying the
depsgraph for dependency on the time source would be a better approach.
2019-11-26 16:26:52 +01:00
75808620ce Made ob param of modifiers_getVirtualModifierList const
The `modifiers_getVirtualModifierList()` function previously took a non-
const `Object *ob` parameter, preventing it from being called from more
restrictive functions. Since the function doesn't modify the passed
object, it could easily be made const.

No functional changes.
2019-11-26 16:26:52 +01:00
354bc1297e Clarified comment about modifiers_getVirtualModifierList()
The old comment was outdated and incorrect.

No functional changes.
2019-11-26 16:26:52 +01:00
2dac0c9179 PyAPI: add Quaternion.make_compatible 2019-11-27 02:00:14 +11:00
d29cf49e9a Fix quaternion compatibility function
Use closest quaternion instead of only checking w sign flipping,
which didn't catch all cases.

T
2019-11-27 02:00:14 +11:00
97dff0ca76 Clip Editor: Fix uninitialized plane track grabbing points
Was happening when there was an image assigned to the track.

Another pair programming session with Clement.
2019-11-26 15:55:28 +01:00
630cb1bb1d Clip Editor: Fix visualization of plane track image
Pair programming with Clement.
2019-11-26 15:55:28 +01:00
fcbec6e97e BLI_task: Add pooled threaded index range iterator, Take II.
This code allows to push a set of different operations all based on
iterations over a range of indices, and then process them all at once
over multiple threads.

This commit also adds unit tests for both old un-pooled, and new pooled
task_parallel_range family of functions, as well as some basic
performances tests.

This is mainly interesting for relatively low amount of individual
tasks, as expected.

E.g. performance tests on a 32 threads machine, for a set of 10
different tasks, shows following improvements when using pooled version
instead of ten sequential calls to BLI_task_parallel_range():

| Num Items | Sequential | Pooled  | Speed-up |
| --------- | ---------- | ------- | -------- |
|       10K |     365 us |  138 us |   2.5  x |
|      100K |     877 us |  530 us |   1.66 x |
|     1000K |    5521 us | 4625 us |   1.25 x |

Differential Revision: https://developer.blender.org/D6189

Note: Compared to previous commit yesterday, this reworks atomic handling in
parallel iter code, and fixes a dummy double-free bug.

Now we should only use the two critical values for synchronization from
atomic calls results, which is the proper way to do things.

Reading a value after an atomic operation does not guarantee you will
get the latest value in all cases (especially on Windows release builds
it seems).
2019-11-26 14:30:41 +01:00
9ecc30250a Fix T71909: Any keyframed GPLayer property is not updated when render animation
By error, the original datablock was used while rendering. Actually, only while the user is drawing the original data must be used because when we tested, the time the system uses to copy the datablock created a very bad "lag" feeling while drawing. Maybe the lag was half second only, but it ruined the pencil feeling.

I talked some time ago with Sergey about that and we decided use this approach.

Now, only the original datablock is used while the user is "moving" the pen, but not in any other situation.

Thanks @sergey for help me with this bug and sorry for thinking it was a depsgraph issue.
2019-11-26 14:05:00 +01:00
14da2b18fc Fix T71860: No versioning for drivers in Mapping node.
The new Mapping node was missing versioning code for drivers.
This patch refactors existing code and add versioning for drivers.

Reviewed By: Sergey Sharybin, Bastien Montagne

Differential Revision: https://developer.blender.org/D6302
2019-11-26 13:45:40 +02:00
2d7effc27d Fix segfault when polling MESH_OT_paint_mask_extract
`CTX_data_active_object(C)` returns `NULL` when there is no active object,
and this was not tested for in the code.
2019-11-26 12:12:29 +01:00
fa1a946d4f Fix memory leak, closing a window didn't free gestures
Exposed by test file in T71718
2019-11-26 20:58:26 +11:00
75e85f1c9f Fix T71806: BMElem.copy_from(other) failed
Don't modify the Python reference when copying custom-data.
2019-11-26 16:28:58 +11:00
7782936977 BMesh: support copying & freeing layers by type 2019-11-26 16:19:56 +11:00
0a3f0e64c9 fix: T71718 Collada: importer does not release intermediate fcurves when importing matrix animations 2019-11-25 21:19:25 +01:00
bd5e3941de Bevel Modifier: Reset default width to 0.1 from 1.0 2019-11-25 14:06:41 -05:00
3f87ac3684 Revert "BLI_task: Add pooled threaded index range iterator."
This reverts commit f9028a3be1.

This is giving weird heisenbug crash on only Windows release builds...
Reverting until we understand to issue.
2019-11-25 19:54:40 +01:00
52f0d685ba Revert "Cleanup: Unused variable in release build mode"
This reverts commit e0cada9519.
2019-11-25 19:54:40 +01:00
Julian Eisel
5bcb0c9935 UI: Allow label for Template-ID (respecting property split layout)
Adds a `text` parameter to `bpy.types.uiLayout.template_ID()` which
causes a label to be added, as usual. Adding the label also makes the
template respect the `bpy.types.uiLayout.use_property_split` option.

Also fixes wrong layout being used in the template-ID, although I think
that didn't cause issues in practice.

Sergey requested this for usage in the Movie Clip Editor.
2019-11-25 19:50:34 +01:00
b374b24f1b UI: Widget Text Cursor Color
Adds a theme setting to specify color of widget text insertion cursor (caret).

Differential Revision: https://developer.blender.org/D6024

Reviewed by Campbell Barton
2019-11-25 08:36:05 -08:00
78071d0cdf Fix T71892: Typo error - Distorsion to Distortion 2019-11-25 16:12:36 +01:00
e0cada9519 Cleanup: Unused variable in release build mode
Thanks Bastien for code review!
2019-11-25 15:22:21 +01:00
62ba16d7c4 Fix for the Python console not setting the cursor 2019-11-25 22:51:20 +11:00
f9028a3be1 BLI_task: Add pooled threaded index range iterator.
This code allows to push a set of different operations all based on
iterations over a range of indices, and then process them all at once
over multiple threads.

This commit also adds unit tests for both old un-pooled, and new pooled
`task_parallel_range` family of functions, as well as some basic
performances tests.

This is mainly interesting for relatively low amount of individual
tasks, as expected.

E.g. performance tests on a 32 threads machine, for a set of 10
different tasks, shows following improvements when using pooled version
instead of ten sequential calls to `BLI_task_parallel_range()`:

    | Num Items | Sequential | Pooled  | Speed-up |
    | --------- | ---------- | ------- | -------- |
    |       10K |     365 us |  138 us |   2.5  x |
    |      100K |     877 us |  530 us |   1.66 x |
    |     1000K |    5521 us | 4625 us |   1.25 x |

Differential Revision: https://developer.blender.org/D6189
2019-11-25 11:58:09 +01:00
Julian Eisel
85cf56ecbc UI: Reduce width of UI-List scrollbars
When scrollbars were redesigned, the size of UI-List scrollbars wasn't
updated. Those were still huge.
This makes their size consistent with other scrollbars and frankly,
non-rediculous.
2019-11-25 11:48:59 +01:00
693d891703 Cleanup: used BKE_mesh_ prefix
Missed in recent BKE_remesh renaming.
2019-11-25 15:49:25 +11:00
bb0708a483 CMake: support building without Python
Resolve linking issues, warnings.
2019-11-25 15:45:49 +11:00
b2d940250c Cleanup: remove unused CMake WITH_MOD_CLOTH_ELTOPO option 2019-11-25 14:52:44 +11:00
00ca7a03da Fix WITH_INPUT_IME breakage in last commit 2019-11-25 13:46:48 +11:00
b92ac3e2cb UI: scale widget cursor by pixel size 2019-11-25 12:20:51 +11:00
249f4423ee Cleanup: doxygen comments
Also correct some outdated symbol references,
add missing 'name' commands.
2019-11-25 01:51:11 +11:00
ace5677ef0 Cleanup: spelling, repeated words 2019-11-25 00:55:11 +11:00
f67a685ad9 Cleanup: move console scrollback initialization into versioning 2019-11-24 23:03:07 +11:00
660f0c6a0e Preferences: disable changing 'U' on blend file versioning
Would have prevented T71612
2019-11-24 23:03:01 +11:00
8cb55f8d16 Fix T71612: Viewport rotate doesn't work
Error in version patching.
2019-11-24 22:49:26 +11:00
9af0cdcd93 Cleanup: remove unused text.selection_set select option
This was meant to set the selection end instead of the cursor
however it hasn't been working for years and seems quite obscure.
2019-11-24 22:05:59 +11:00
aa6fcabad1 Cleanup: text editor variable names 2019-11-24 22:03:57 +11:00
3106ca8f63 Text Editor: smooth scrolling
Add smooth scrolling support for vertical scrolling.

This is only active while scrolling so we don't need to support
pixel-level offsets for operators, interactions.
2019-11-24 20:19:24 +11:00
44f18ce0a6 Windows: Disable tbbmalloc for debug builds.
TBBMalloc seems to have a race condition somewhere on shutdown
that seems to show up in debug builds only, ideally we find the
issue and send a patch upstream but due to its racy nature it
has eluded capture so far. This patch disables TBBMalloc for
debug builds so that developers that actually need to get some
work done can work without being bothered by this misbehaviour.
2019-11-23 09:21:34 -07:00
373e936e3e Fixed rest of bevel regression tests.
The calculation of pro_super_r rounded to a non-exact float,
so put in rounding code for the special cases.
2019-11-22 13:14:37 -05:00
71ddcf1a08 Paint: Smoother curve preset
This implements a 5th-order equation smoothstep, which produces a flat
surface at the brush center. Some users find that our current grab brush
is too sharp, so now we have both options.
This also improves the behavior of the new clay brushes.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D6265
2019-11-22 18:21:44 +01:00
aadbb794cd Fix T71741: Crash showing the object relations menu 2019-11-23 03:04:57 +11:00
Julian Eisel
b037ba2665 UI: Changes to Graph Editor selection and transform
When introducing "drag-all-selected" support all over Blender, we
figured this wouldn't work well with the Graph Editor
selection/transform behavior.
Hence, William and I worked on the following changes, although we used
this chance to improve the behavior in general too.
For more info see T70634.

* Handles now always move with the key, regardless if they are selected
  or not.
* Selecting the key doesn't select the handles anymore, their selection
  is separate.
* Multiple keys and handles can now be dragged.
* Dragging a handle moves all selected handles **on the same side**.
* Tweak-dragging any handle can never affect any keyframe location,
  only handles.
* G/R/S should behave as before.
* Changing the handle type with a key selected always applies the change
  to both handles.
* Box selection with Ctrl+Drag now allows deselecting handles (used to
  act on entire triple only).
* Box selection //Include Handles// option now only acts on visible
  handles, wasn't the case with Only Selected Keyframes Handles enabled.
* Box selection //Include Handles// is now enabled by default in all
  bundled keymaps.

The changes have been tested for some days by the animators here in the
Blender Animation Studio. Some changes are based on their feedback.

Also, this improves/adds comments for related code.

Differential Revision: https://developer.blender.org/D6235

Reviewed by: Sybren Stüvel, William Reynish
2019-11-22 16:54:43 +01:00
177dfc6384 Fix T71273: Bad encoding of utf-8 for Text objects
`BLI_strncpy_wchar_from_utf8` internally assumes `wchar_t` is 32 bits
which is not the case on windows.

The solution is to replace `wchar_t` with `char32_t`.

Thanks to @robbott for compatibility on macOS.

Differential Revision: https://developer.blender.org/D6198
2019-11-22 12:27:34 -03:00
1304cee920 Fix some of the bevel regression tests.
The code changes for custom bevels did not recalculated profiles
in certain non-custom-profile cases after projection plane moves.
2019-11-22 09:30:10 -05:00