Commit Graph

73531 Commits

Author SHA1 Message Date
OmarSquircleArt
1c2f7b022a Cycles: Add Random Per Island attribute.
The Random Per Island attribute is a random float associated with each
connected component (island) of the mesh. It is particularly useful
when artists want to add variations to meshes composed of separate
units. Like tree leaves created using particle systems, wood planks
created using array modifiers, or abstract splines created using AN.

Reviewed By: Sergey Sharybin, Jacques Lucke

Differential Revision: https://developer.blender.org/D6154
2019-11-27 12:07:20 +02:00
Gaia Clary
fc1a073bcd refactor: collada importer: calculate fcurve index only once when creating an fcurve 2019-11-27 10:50:24 +01:00
Campbell Barton
4fd99c9495 Cleanup: spelling, clang-format 2019-11-27 14:54:53 +11:00
Campbell Barton
b9e10273e0 Cleanup: warnings 2019-11-27 14:50:37 +11:00
Harley Acheson
7af5604389 Fix T69530: Do Not Refresh Bookmarks While Moving File Browser
Improve laggy performance while moving File Browser by not refreshing fsMenu lists in its init.

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

Reviewed by Bastien Montagne
2019-11-26 15:53:07 -08:00
Ray Molenkamp
b213d82c19 Cleanup/CMake: Remove dormant windows codesign code
This was added years ago to prepare for code-signing the executable
but was never used, buildbots use a different mechanism now to sign
so no need to keep this around.
2019-11-26 15:13:22 -07:00
Julian Eisel
b16018f637 Fix preview Template-ID broken in vertical layouts
Old code worked pure "by luck". I fixed an error in rB5bcb0c993503 that
made this "luck" go away. Special handling is needed for the preview
layout.
2019-11-26 19:47:13 +01:00
Antonio Vazquez
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
Sybren A. Stüvel
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
Sybren A. Stüvel
b21648ab36 Anim: made object param of BKE_animdata_id_is_animated() const
No functional changes.
2019-11-26 17:56:59 +01:00
Sybren A. Stüvel
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
Sybren A. Stüvel
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
Sybren A. Stüvel
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
Sybren A. Stüvel
354bc1297e Clarified comment about modifiers_getVirtualModifierList()
The old comment was outdated and incorrect.

No functional changes.
2019-11-26 16:26:52 +01:00
Campbell Barton
2dac0c9179 PyAPI: add Quaternion.make_compatible 2019-11-27 02:00:14 +11:00
Campbell Barton
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
Sergey Sharybin
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
Sergey Sharybin
630cb1bb1d Clip Editor: Fix visualization of plane track image
Pair programming with Clement.
2019-11-26 15:55:28 +01:00
Bastien Montagne
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
Antonio Vazquez
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
OmarSquircleArt
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
Sybren A. Stüvel
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
Campbell Barton
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
Campbell Barton
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
Campbell Barton
7782936977 BMesh: support copying & freeing layers by type 2019-11-26 16:19:56 +11:00
Gaia Clary
0a3f0e64c9 fix: T71718 Collada: importer does not release intermediate fcurves when importing matrix animations 2019-11-25 21:19:25 +01:00
Hans Goudey
bd5e3941de Bevel Modifier: Reset default width to 0.1 from 1.0 2019-11-25 14:06:41 -05:00
Bastien Montagne
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
Bastien Montagne
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
Paul (Thirio)
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
Antonio Vazquez
78071d0cdf Fix T71892: Typo error - Distorsion to Distortion 2019-11-25 16:12:36 +01:00
Sergey Sharybin
e0cada9519 Cleanup: Unused variable in release build mode
Thanks Bastien for code review!
2019-11-25 15:22:21 +01:00
Campbell Barton
62ba16d7c4 Fix for the Python console not setting the cursor 2019-11-25 22:51:20 +11:00
Bastien Montagne
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
Campbell Barton
693d891703 Cleanup: used BKE_mesh_ prefix
Missed in recent BKE_remesh renaming.
2019-11-25 15:49:25 +11:00
Campbell Barton
bb0708a483 CMake: support building without Python
Resolve linking issues, warnings.
2019-11-25 15:45:49 +11:00
Campbell Barton
b2d940250c Cleanup: remove unused CMake WITH_MOD_CLOTH_ELTOPO option 2019-11-25 14:52:44 +11:00
Campbell Barton
00ca7a03da Fix WITH_INPUT_IME breakage in last commit 2019-11-25 13:46:48 +11:00
Harley Acheson
b92ac3e2cb UI: scale widget cursor by pixel size 2019-11-25 12:20:51 +11:00
Campbell Barton
249f4423ee Cleanup: doxygen comments
Also correct some outdated symbol references,
add missing 'name' commands.
2019-11-25 01:51:11 +11:00
Campbell Barton
ace5677ef0 Cleanup: spelling, repeated words 2019-11-25 00:55:11 +11:00
Campbell Barton
f67a685ad9 Cleanup: move console scrollback initialization into versioning 2019-11-24 23:03:07 +11:00
Campbell Barton
660f0c6a0e Preferences: disable changing 'U' on blend file versioning
Would have prevented T71612
2019-11-24 23:03:01 +11:00
Campbell Barton
8cb55f8d16 Fix T71612: Viewport rotate doesn't work
Error in version patching.
2019-11-24 22:49:26 +11:00
Campbell Barton
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
Campbell Barton
aa6fcabad1 Cleanup: text editor variable names 2019-11-24 22:03:57 +11:00
Campbell Barton
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