Commit Graph

92725 Commits

Author SHA1 Message Date
Johnny Matthews
908dfd5e0d Merge branch 'blender-v3.2-release' 2022-05-31 10:15:40 -05:00
Johnny Matthews
52cb24a779 Fix T98500: Wrong Selection in Duplicate Points
Differential Revision: https://developer.blender.org/D15071
2022-05-31 10:07:56 -05:00
Hans Goudey
3060b98842 Cleanup: Simplify dependencies for GMP math header
Previously, the base math headers included GMP headers in all cases.
This was problematic because we don't want all modules that use the
math headers to depend on GMP, and the unnecessary includes could
theoretically have detrimental effects to compile times.

Now `BLI_math_mpq.hh` depends on `BLI_math_base.hh`, so if a file
needs to use exact arithmatic, it can just include the former.

Differential Revision: https://developer.blender.org/D15079
2022-05-31 16:55:14 +02:00
Hans Goudey
a746cef825 Cleanup: Move lib_override.c to C++
This will allow easier const correctness and use of
nicer data structures like `Vector` and `Map`.
2022-05-31 16:19:50 +02:00
Kévin Dietrich
d356a4f280 Merge remote-tracking branch 'origin/blender-v3.2-release' 2022-05-31 16:18:42 +02:00
Kévin Dietrich
a5dcae0c64 Fix T97877: broken shadows with GPU subdivision
Issues stems from the mesh not being watertight. This was caused by
floating point precision issues when evaluating patch coordinates at
patch boundaries (loops/corners in different patches pointing to the same
vertex). To fix this we ensure that all loops pointing to the same vertex
share the same patch coordinate. This keeps code simple, and does not
require to track precision issues in floating point math all over the
place.
2022-05-31 16:18:08 +02:00
Hans Goudey
4669178fc3 Attributes: Hide internal UI attributes and disallow procedural access
This commit hides "UI attributes" described in T97452 from the UI lists
in mesh, curve, and point cloud properties, and disallow accessing them
in geometry nodes.

Internal UI attributes like selection and hiding values should use the
attribute system for simplicity and performance, but we don't want to
expose those attributes in the attribute panel, which is meant for
regular user interaction. Procedural access may be misleading or cause
problems, as described in the design task above.

These attributes are added by two upcoming patches: D14934, D14685

Differential Revision: https://developer.blender.org/D15069
2022-05-31 13:20:16 +02:00
Julian Eisel
39c14f4e84 Merge branch 'blender-v3.2-release' 2022-05-31 12:29:41 +02:00
Julian Eisel
765c16bbd0 Fix wrong asset dropped when dragging from loc. of just cleared asset
See previous commit for an explanation of what went wrong. Similar to
the fix there, we also have to update the dragged data (e.g. the
data-block) referenced by the button.

Committing separately since this could cause further issues.
2022-05-31 12:28:58 +02:00
Julian Eisel
75ef51cc80 Fix T95394: Crash when dragging from location of just cleared asset
In Blender buttons are recreated over redraws, except of the active
button which is kept alive, and replaces the new version of itself in
the new redraw. In order to do that, the button needs to be recognized.
This process of recognizing and matching buttons from different redraws
isn't always bullet-proof. That's okay-ish, but we have to make sure
that the relevant data of the old active button is updated with the
newest data.

Here the matching would go wrong, and the new active button was
recognized as the old active button, which was in fact removed when the
asset was cleared. This patch makes sure the image buffer attached to
the buttons is updated when buttons were recognized as matching.

Note that the dragging will still use the wrong data-block, this will be
fixed in the following commit.
2022-05-31 12:27:52 +02:00
Campbell Barton
0d7e0ffdb5 Cleanup: tabs to spaces for CMake files & sort file-lists 2022-05-31 18:18:24 +10:00
Hans Goudey
247ceca629 Merge branch 'blender-v3.2-release' 2022-05-31 10:06:22 +02:00
Hans Goudey
18a17d4291 Fix T98403: Crash applying modifiers on non-mesh objects
The operator assumed it was called on a mesh object, which has
mostly been the case because of lack of support for other object
types, but the new curves object is supported, which is the situation
in the report.

Differential Revision: https://developer.blender.org/D15063
2022-05-31 10:05:48 +02:00
Iyad Ahmed
a30e67813d OBJ: Enable undo for experimental OBJ importer
The new OBJ importer operator didn't register an undo event.
This commit enables the register and undo flags for the operator.

Reviewed By: Bastien Montagne, Aras Pranckevicius, Serhiy Striletksy
Differential Revision: https://developer.blender.org/D15051
2022-05-31 11:00:14 +03:00
Jeroen Bakker
a3a138b41b Merge branch 'blender-v3.2-release' 2022-05-31 09:52:32 +02:00
Julien Kaspar
1ebc0ebdc0 UI: Correct sculpt tooltips
Some of the tools in sculpt mode were still referring to the previously  experimental sculpt vertex colors.
They should instead refer to color attributes.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D15073
2022-05-31 09:51:26 +02:00
Campbell Barton
993fd985f0 Cleanup: remove UV handling from OBJECT_OT_modifier_convert
It doesn't make sense to merge UV's when applying a particle-system.
2022-05-31 17:42:44 +10:00
Campbell Barton
c338388354 Cleanup: rename ED_object_modifier_convert to make it's use clearer
This function is specific to particle-systems which wasn't obvious,
leading to an error in [0] which added UV handling which doesn't make
sense.
2022-05-31 17:40:02 +10:00
Campbell Barton
c8058e51ee RNA: add macros for EnumPropertyItem layout elements
Add the following macros for enums as support for these features wasn't
all that obvious and there were some inconsistencies in their use.

- RNA_ENUM_ITEM_HEADING(name, description)
- RNA_ENUM_ITEM_SEPR
- RNA_ENUM_ITEM_SEPR_COLUMN
2022-05-31 14:19:06 +10:00
Campbell Barton
94444aaadf PyDoc: de-duplicate enums for rna_rna.c & bpy_props.c
Lists of items for bpy.props were duplicated 3 times, now all enums are
defined once in rna_rna.c and referenced from bpy.props doc-strings.
2022-05-31 14:19:06 +10:00
Campbell Barton
ed2a345402 PyAPI: add _bpy.rna_enum_items_static() for accessing internal enum data
This is method is intended for internal use
(introspection for generating API docs).
2022-05-31 14:07:08 +10:00
Campbell Barton
7056c7520a RNA: avoid non-standard enum item (enum section using single space)
Also removes stray semicolon in RNA_enum_items.h
2022-05-31 14:07:06 +10:00
Hans Goudey
ca59391704 Cleanup: Remove outdated comment 2022-05-30 19:30:52 +02:00
Dominik Fill
f523fb1dc9 Fix T96157: Make size of Frame Node label independent from Line Width
This commits corrects the calculation of the Frame Node label size,
making it independent of the 'Line Width' user preference.

Since `U.dpi` is actually DPI divided by `U.pixelsize` and `U.pixelsize`
is calculated from line-width multiplying by `U.pixelsize` undoes
the connection between line-width and label size.
It now stays the same, regardless of the line-width setting.

Reviewed By: Julian Eisel, Harley Acheson

Differential Revision: https://developer.blender.org/D14338
2022-05-30 19:26:03 +02:00
Dominik Fill
c8cef83fae Fix T96157: Make size of Frame Node label independent from Line Width
This commits corrects the calculation of the Frame Node label size,
making it independent of the 'Line Width' user preference.

Since `U.dpi` is actually DPI divided by `U.pixelsize` and `U.pixelsize`
is calculated from line-width multiplying by `U.pixelsize` undoes
the connection between line-width and label size.
It now stays the same, regardless of the line-width setting.

Reviewed By: Julian Eisel, Harley Acheson

Differential Revision: https://developer.blender.org/D14338
2022-05-30 19:19:07 +02:00
Hans Goudey
b24e091c5a Cleanup: Move attribute.c to C++ 2022-05-30 18:06:39 +02:00
Hans Goudey
3f9376851b Cleanup: Clang tidy
Mostly duplicate includes, also use nullptr, and using default
member initializers.
2022-05-30 17:46:44 +02:00
Bastien Montagne
3437cf155e LibOverride: Add full support for camera's background images.
Add support for adding (inserting) new background images into an
override of a linked Camera ID.

Request from the Blender studio.

This ended up being more involved than expected as it uncovered some
latent issues with existing background images code. Noticiably, a new
`BKE_camera_background_image_copy` had to be added to handle copying
of background images in a proper, generic ID-management way.
2022-05-30 17:43:22 +02:00
Hans Goudey
a5d9b3442d Cleanup: Move attribute domain count out of enum
The number of attribute domains is not an attribute domain.
This way it doesn't have to be handled in switch statements.

Differential Revision: https://developer.blender.org/D15065
2022-05-30 17:30:37 +02:00
Bastien Montagne
4267c6280a Fix (unreported) missing rna_path function for BackgroundImage struct. 2022-05-30 17:16:13 +02:00
Bastien Montagne
dd2ed1c55c Cleanup: report errors instead of asserting in case of missing local data on file read.
While this should never happen, this is not a critical failure
preventing Blender to work.
2022-05-30 16:58:27 +02:00
Bastien Montagne
fb62fcf071 Fix polling function for background image removal not checking linked ID.
Linked ID is (almost) never editable... Also rename that function to add
the `_poll` suffix.
2022-05-30 16:58:27 +02:00
Bastien Montagne
e7544e3ce4 Fix (unreported) wrong ID usercount handling in background images removal.
Assuming that an ID pointer is NULL because another 'source type'
property has some specific value is utterly wrong and a gateway to
usercounting bugs.
2022-05-30 16:58:27 +02:00
Dalai Felinto
c1277c5d25 Merge remote-tracking branch 'origin/blender-v3.2-release' 2022-05-30 16:44:22 +02:00
Antonio Vazquez
6856290514 Fix T98253: Gpencil Lineart crashes when undoing creation of linked copy
These lines were not used now because the handling of copy data has changed.

Assigning the `eval` data can produce unexpected result, especially since everywhere ID_RECALC_TRANSFORM is used, we also do a copy on write. That should take care of `ob->data` for the eval object.
2022-05-30 16:39:27 +02:00
Jacques Lucke
cd6551d4eb Cleanup: use class instead of struct 2022-05-30 16:28:13 +02:00
Brecht Van Lommel
fc1ae52994 Fix T98444: Image.save_render not using scene output file type
Also simplify logic because (source == IMA_SRC_VIEWER) and
ELEM(type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE) are the same
thing.
2022-05-30 16:24:12 +02:00
Dalai Felinto
de610d06a6 Cleanup: make format 2022-05-30 16:17:25 +02:00
Dalai Felinto
65bd9974d1 Cleanup: make format 2022-05-30 16:16:25 +02:00
Dalai Felinto
afd81e26af Fix T98446: Spreadsheets filter not working on Name column 2022-05-30 16:11:52 +02:00
Antonio Vazquez
a775389823 Merge branch 'blender-v3.2-release' 2022-05-30 15:42:38 +02:00
Antonio Vazquez
70171cdfdf Fix T98488: GPencil weightpaint not visible if first point is no weight
The problem was because the check was done with the total weights of the first element of the array and if this was null or 0, the weights were not duplicated.

As this bug was introduced fixing T97150 due a problem in the weight data, now instead to duplicate all stroke data to create the perimeter for the PDF/SVG, only the points are duplicated because the weights are not needed. This fix the original bug and also reduce the memory used by the export process.
2022-05-30 15:42:08 +02:00
Jacques Lucke
6a59cf0530 Nodes: add separately allocated runtime data for nodes and sockets
This is a follow up to rBbb0fc675822f313c5546a2498a162472c2571ecb.
Now the same kind of run-time data is added to nodes and sockets.

Differential Revision: https://developer.blender.org/D15060
2022-05-30 15:32:16 +02:00
Julian Eisel
1f85877263 Fix T98461: Crash running screenshot from the command-line
When launching Blender with a script creating a screenshot, the Outliner
tree wasn't initialized and built properly. That is because at this
stage, all visible regions were only tagged for a non-rebuild redraw,
not a full redraw. So ensure all regions are tagged for a full redraw
immediately after file reading. Usually the full redraw would be caused
by a file-read notifier, but the Python expression/script is executed
before notifiers are handled.

Note that even before this was crashing, the Outliner would be empty in
the created screenshot.

Additionally adds an assert to the Outliner to note assumptions
explicitly, rather than crashing later.
2022-05-30 15:17:50 +02:00
Pratik Borhade
a8471459fd Fix T98445: Knife Tool always cuts through
Minor error in if condition used for early return.

Ref D15050
2022-05-30 22:29:16 +10:00
Brecht Van Lommel
7f877ee042 Merge branch 'blender-v3.2-release' 2022-05-30 14:09:13 +02:00
Brecht Van Lommel
fbeec91abf Cleanup: fix various typos
Contributed by luzpaz

Differential Revision: https://developer.blender.org/D15057
2022-05-30 14:09:07 +02:00
Brecht Van Lommel
24e74f8bef Fix T98449: Cycles crash changing frame after recent changes
Subdivision did not properly update when evaluating first without and then with
orco coordinates. Now update the subdivision evaluator settings every time, and
reallocate the vertex data buffer when needed.

there is an additional issue in this file where orco coordinates are not
available immediately on the first frame when they should be, and only appear
on the second frame. However that is an old limitation related to the depsgraph
not getting re-evaluated on viewport display mode changes, here we just fix the
crash.
2022-05-30 14:06:03 +02:00
Hans Goudey
ddebb0f783 Cleanup: Fix typo
Contributed by @luzpaz

Differential Revision: https://developer.blender.org/D15058
2022-05-30 14:05:15 +02:00
Jacques Lucke
bb0fc67582 Nodes: add separately allocated run-time data for bNodeTree
`bNodeTree` has a lot of run-time embedded in it currently. Having a separately
allocated run-time struct has some benefits:
* Run-time data is not stored in files.
* Makes it easy to use c++ types as run-time data.
* More clear distinction between what data only exists at run-time and which doesn't.

This commit doesn't move all run-time data to the new struct yet, only the data where
I know for sure how it is used. The remaining data can be moved separately.

Differential Revision: https://developer.blender.org/D15033
2022-05-30 12:54:07 +02:00