Commit Graph

74578 Commits

Author SHA1 Message Date
37820651bb BLI: add Array constructor that does not initialize non-trivial types
This should rarely be necessary, but I have a use case coming up soon.
2020-06-30 15:58:29 +02:00
Demeter Dzadik
5b03f49302 Custom Properties: support default values for strings
Differential Revision: https://developer.blender.org/D8102
2020-06-30 15:06:33 +02:00
Vincent Blankfield
e93663363e Fix T77734: random crash when rendering animation
Differential Revision: https://developer.blender.org/D7986
2020-06-30 14:58:50 +02:00
8aaca88402 Fix missing relation in compositor depsgraph
This is a fix for c7694185c9. An object without base can still be in the
depsgraph, and then the `VIEW_LAYER_EVAL` node does not exist.

This popped up while @Sergey was looking into T78264.
2020-06-30 14:26:12 +02:00
2a1af5fa48 Cleanup: add missing extern "C" 2020-06-30 14:01:46 +02:00
bdbfdce766 Transform: Reduce the alpha in the Edge Slide drawing
It was very intense and could be confused with the `Even` option.
2020-06-30 09:00:22 -03:00
602cfdeac7 Transform: Add constraint intersection support
Snap to faces and edges is now enhanced in the Edge Slide.

It works in the same way that it already works in the Vert Slide.

Basically it now snaps to the intersection of the slid edge with the
face plane or the edge line.
2020-06-30 08:58:47 -03:00
84901f2eda Nodes: store nodes by bNodeType instead of idname
This is more efficient in most cases.
2020-06-30 13:35:45 +02:00
a6775efb4f Alembic exporter: Fix Windows build errors
Some Windows-specific code needed adjustment after 2917df21ad.
2020-06-30 13:09:44 +02:00
b838a51803 Cleanup: spelling 2020-06-30 20:54:31 +10:00
84f8b47c4c Cleanup: clang-format 2020-06-30 20:50:37 +10:00
0291039079 LibOverride: Add minimal support of liboverrides to shapekeys. 2020-06-30 12:19:11 +02:00
4c3d51326e LibOverride: Refactor 'make override' 3DView operator.
This one now uses a generic 'dependency detection' process to decide
which IDs should be overridden.

This will e.g. allow to override mesh and shapekeys when those have some
values controlled by drivers using an armature bone...
2020-06-30 12:19:11 +02:00
f6394e66ed LibOverride: Fix handling of owned ID pointers in diffing process. 2020-06-30 12:19:11 +02:00
a94a05ec19 LibOverride: Add proper handling of shapekeys to core override code itself. 2020-06-30 12:19:11 +02:00
24c4d3f1f7 LibOverride: Add necessary bits in RNA to deal with embedded IDs paths.
Note that this code is rather rough and slightly hacky, a proper
solution needs to be designed at some point probably, but for now this
should work fine.

As usual, master collections and root node trees remain TODO for now.
2020-06-30 12:19:11 +02:00
7556530bac LibOverride: properly tag owner ID for override refresh, when embedded one is affected.
Note that this is partially WIP code, we only take care of shapekeys
here for now.

Also, move this tagging for liboverride refresh into same chack as the
one for tagging editors, sounds more logical that way.
2020-06-30 12:19:11 +02:00
deb01eb199 LibOverride: Add concept of 'embedded'/'virtual' override.
IDs like embedded ones (master collections, root node trees) cannot be
linked, and thus cannot be real override themselves.

Since they are managed by their owner ID, that one will also have the
overrides for their locally edited properties.

We still need a way to mark them as overridden though, for various UI
and override-internal purposes, this is done using a new ID flag.

Note that since Shae Keys are not linkable, and their pointers are not
editable in RNA, they are also considered as embedded from override
point of view.
2020-06-30 12:19:11 +02:00
34027506f8 Cleanup: ID macros: cast to const ID * instead of ID *.
Allows to pass const pointers without getting complains from the
compiler.
2020-06-30 12:19:11 +02:00
737b0fd762 Cleanup: Use unsigned int when for enum values, instead of signed int. 2020-06-30 12:19:11 +02:00
906d93110e Cleanup: LibOverride: Naming. 2020-06-30 12:19:11 +02:00
fa7d990f10 LibOverride: Fix improper update of depsgraph relations. 2020-06-30 12:19:11 +02:00
0b3313e532 Cleanup: LibOverride: Replace raw pointers checks by proper macros.
This is cleaner, but also crucial to avoid weird issues when behaviors
of those checks are modified...
2020-06-30 12:19:11 +02:00
4783520bfa Cleanup (from clang format)... 2020-06-30 12:19:11 +02:00
9dbe0f9c04 Fix T78367: triangulate modifier does not preserve sculpt vertex colors 2020-06-30 12:00:44 +02:00
2917df21ad Alembic: new exporter based on the USD exporter structure
The Alembic exporter has been restructured by leverages the
`AbstractHierarchyIterator` introduced by the USD exporter. The produced
Alembic files have not changed much (details below), as the Alembic
writing code has simply been moved from the old exporter to the new. How
the export hierarchy is handled changed a lot, though, and also the way
in which transforms are computed. As a result, T71395 is fixed.

Differences between the old and new exporter, in terms of the produced
Alembic file:
- Duplicated objects now have a unique numerical suffix.
- Matrices are computed differently, namely by simply computing the
  evaluated transform of the object relative to the evaluated transform
  of its export-parent. This fixes {T71395}, but otherwise should
  produce the same result as before (but with simpler code).

Compared to the old Alembic exporter, Subdivision modifiers are now
disabled in a cleaner, more efficient way (they are disabled when
exporting with the "Apply Subdivisions" option is unchecked). Previously
the exporter would move to a new frame, disable the modifier, evaluate
the object, and enable the modifier again. This is now done before
exporting starts, and modifiers are only restored when exporting ends.

Some issues with the old Alembic exporter that have NOT been fixed in
this patch:
- Exporting NURBS patches and curves (see T49114 for example).
- Exporting flattened hierarchy in combination with dupli-objects. This
  seems to be broken in the old Alembic exporter as well, but nobody
  reported this yet.

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

Reviewed By: Sergey
2020-06-30 11:38:46 +02:00
a2b7c84ae8 Cleanup: unused arguments 2020-06-30 19:35:32 +10:00
4176adaf96 Fix T78455: Failed assert when opening a viewport panel
Mistake from 1fa40c9f8a.
2020-06-30 10:47:49 +02:00
55ae55af66 Cleanup: remove unnecessary namespace specifiers 2020-06-30 10:35:50 +02:00
5d2005cbb5 UI: Add shortcuts for grease pencil modifier panels
See rB1fa40c9f8a81 for more details. The implementation is the same.
The only difference to the mesh modifier  commit is a slight rework of
edit_modifier_invoke_properties in order to pass through to check for
other keymap items with the same shortcut.
2020-06-29 21:04:45 -04:00
Adrian Newton
1d29822fa9 UI: Alphabetize grease pencil modifier list
The Texture Mapping Modifier was out of place

Differential Revision: https://developer.blender.org/D7474
2020-06-29 19:47:38 -04:00
062a843bfb EEVEE: Fix undefined behavior when using BSDF nodes inside volume shaders
This should fix T76171 Eevee bsdf shaders glitches
2020-06-30 01:32:00 +02:00
b29fd7bab8 GPencil: Cleanup - Replace gp_ prefix with gpencil_
This was missing in previous cleanup commits.
2020-06-29 22:37:11 +02:00
421ac266d0 UI: Tweak Cache File Template Layout
The template was disorganized and didn't fit with the new layout style.

|          Old         |         New          |
| {F8641166 size=full} | {F8641167 size=full} |

Differential Revision: https://developer.blender.org/D8113
2020-06-29 16:36:19 -04:00
a71d3bd2df UI: Don't show modifier operation reports on button press
The reports should only show when using shortcuts.
2020-06-29 15:06:13 -04:00
1fa40c9f8a UI: Add shortcuts for modifier panels
The shortcuts act on the modifier with its panel under the mouse.
The following shortcuts are enabled by default:
  - Remove modifier: X, Delete
  - Apply modifier: Ctrl A
  - Duplicate modifier: Shift D
More shortcuts can be added in the keymap.

Each panel can now store a custom data RNA pointer, and a new
function is added to get the custom data for the panel under the
cursor. This custom data could be used to refactor the "List Panel
System" to generalize it and integrate it further with RNA.

The same functionality will be added  in further commits where it
applies to constraints, grease pencil modifiers, and effects.

Differential Revision: https://developer.blender.org/D8031
2020-06-29 15:00:25 -04:00
4f8a881715 Fix T78444: Duplicate "From Radius" in Cast Modifier UI
This button was meant to be "Use Transform"
2020-06-29 14:41:46 -04:00
5d31ef0820 Remove Threaded Sculpt option
Threaded Sculpt is now always enabled by default. If it causes
performance problems compared single threaded sculpt it should be
considered a bug.

Reviewed By: sergey

Maniphest Tasks: T77638

Differential Revision: https://developer.blender.org/D7960
2020-06-29 18:20:09 +02:00
3aced11d79 Nodes: rename node_socket.c to node_socket.cc
I have to add some C++ code in callbacks for socket types
for the new particle system.
2020-06-29 17:36:21 +02:00
bcf49d13e5 Fix compile error on Apple Clang
Needs to compile with `CMAKE_OSX_DEPLOYMENT_TARGET` of 10.14 at least to
have `std::optional<>::value()` available. So we have to increase the
minimum required compiler version, but that requires more changes. Just
fix the build error for now.
2020-06-29 17:28:37 +02:00
937d89afba UI: Show library status icons in search menus, rather than letter prefix
Rather than a `L` (linked), `O` (overridden) or `M` (missing) prefix for the
name, show the existing library status icons. See D7999 for screenshots.

Note that when using preview icons, or if the search menu contains items with
own icons (e.g. brush icons), we still fallback to the prefix solution.

Zero or fake user is still indicated with a prefix.

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

Reviewed by: Bastien Montagne, William Reynish
2020-06-29 17:28:37 +02:00
5024c54271 RNA: properly tag 'embedded' ID pointers as owned.
This is important at several level, mainly for overrides currently.

Note that this also includes shape keys, since from RNA point of view
those are also 'embedded' (they are not editable, not linkable, ...).
2020-06-29 17:28:04 +02:00
583cfe2596 LibOverride: ignore all data arrays of meshes.
Those are not overridable, and comparing them is... costly.
2020-06-29 17:28:04 +02:00
28f4e5cd6b RNA: Add a way to prevent automatic addition of 'no ownership' flag for ID pointer properties.
Since makesrna runs after all properties have been defined, we have to
remember with a new internal flag when we explicitely disable the
'PROP_PTR_NO_OWNERSHIP' flag for a property.

Otherwise there was no way to do so for ID pointer properties...
2020-06-29 17:28:04 +02:00
febb2351ad Fix ShapeKeys not being deleted together with their owner ID.
Consistency with e.g. copying (copying a mesh also duplicates its
shapekey typically).

Baby step towards getting rid of this horrible ID, some day...

Note that for now we only do that when taking BMain into account, fancy
code dealing with non-main IDs and such has to deal with those itself.
2020-06-29 17:28:04 +02:00
dcdffe719f Fix ID_swap not keeping original recalc flags.
Note that we might be missing more things there still, maybe some tags
e.g. should also be swapped?
2020-06-29 17:28:04 +02:00
b723d38812 Add utils to remove an ID from the relations runtime data in Main. 2020-06-29 17:28:04 +02:00
cff688ce7b Cleanup: make some type casts explicit
Doing this so that I turn this into a .cc file.
2020-06-29 17:27:03 +02:00
bf87df3485 Fix T78323: Enable Unified and Secondary colors for Scultp Vertex Colors
The report does not include any file, but probably that file is using the
settings for unified colors, which are currently not available in the UI,
so it always paints black. This enables unified colors and secondary
colors for sculpt vertex colors, so it should solve that issue.

Unified color does not make much sense now as the Paint tool is the only
one that has paint capabilities, but it will do in the future when
sculpt and paint at the same time is enabled and the paint capability is
added to more tools.

Reviewed By: sergey

Maniphest Tasks: T78323

Differential Revision: https://developer.blender.org/D8136
2020-06-29 17:25:27 +02:00
3118636f81 Fix Smear Tool too weak on high poly meshes
The defaults for the Smear tool were making it too weak in high poly
meshes, specially the alpha/pressure option enabled by default. Now this
option is disabled, it has a linear pressure curve and less spacing.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D8134
2020-06-29 17:23:43 +02:00