Commit Graph

101962 Commits

Author SHA1 Message Date
Almaz-Shinbay
e628b5ffe5 Cleanup: remove unnecessary constraint code in pose base expand()
Removes unnecessary lines, which are handled already by `TreeElementConstraintBase` and `TreeElementConstraint` constructors (see 02969de155), in `TreeElementPoseBase::expand()`.

Pull Request: https://projects.blender.org/blender/blender/pulls/111118
2023-08-14 17:07:00 +02:00
Guillermo
391c2ea21c Fix #109081: Ensure NLA swap strips do not overlap each other.
When swapping strips, if the strips overlapped after the swap, one
of them would get deleted.  We now check if they would overlap
ahead of time, and simply abort the swap instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/109980
2023-08-14 17:06:26 +02:00
Bastien Montagne
695995d7cb Refactor: Move 'local data' liboverride flag clearing from 'lib_link' to 'read_data' code.
There is no reason to do that in the 'lib_link' stage of blendfile
reading, whether the owner ID is linked or local is already known info
at the 'read_data' stage of the process. And it is more logical to do
that in code affecting internal private data of an ID, rather than in
code handling updates of it ID pointers.

Note that the camera's baground image case was already handled in the
'read_data' stage.

No behavioral change expected here.
2023-08-14 16:45:18 +02:00
Bastien Montagne
6a79a6a24a Cleanup/Refactor: Move animdata read/write code into generic ID handling.
There is no reason at all for each ID read/write callbacks to have to
deal with this generic, common data explicitely. Generic ID read/write
code is the place to handle such data (just like asset, liboverride,
etc. data are handled already).

Note behavioral change expected here.
2023-08-14 16:30:53 +02:00
Jason Fielder
ca527efb9f Metal: Ensure MTLBatch uses context bound shader
Previously the shader associated with a batch was
assigned separately. This meant on occasion, the
incorrect shader was used with the Metal backend.
Updating the shader fetch to use the context bound
shader instead of the batch shader member as per
OpenGL/Vulkan backends.
Also include state change check to be consistent
with OpenGL.

Authored by Apple: Michael Parkin-White

Co-authored-by: Michael Parkin-White <mparkinwhite@apple.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/111112
2023-08-14 15:56:12 +02:00
Philipp Oeser
cf43477839 Fix #111067: NLA tracks cannot be renamed from Outliner
Outliner `do_item_rename` has checks so linked or overridden IDs cannot
be renamed.

A `TreeStoreElem`s ID can point to other data than "real" IDs though
(see how `outliner_add_element` casts to an ID from an arbitrary void
pointer and cases marked `/* NO ID */` in code). In those cases,
`ID_IS_LINKED` or `ID_IS_OVERRIDE_LIBRARY` _could_ return true and a the
renaming operation would fail.

Now also check if this is a real ID (`TSE_IS_REAL_ID`), so code can
continue.

Also add a proper notifier, so track renaming from the Outliner will
update the NLA immediately.

Pull Request: https://projects.blender.org/blender/blender/pulls/111110
2023-08-14 15:27:18 +02:00
Almaz-Shinbay
02969de155 Outliner: Port constraint elements to new tree-element code design
No user visible changes expected.

Part of #96713, continuation of work started in 249e4df110 and 2e221de4ce.
Refer to these for a motivation and design overview.

Adds new classes for constraint elements.

Pull Request: https://projects.blender.org/blender/blender/pulls/111108
2023-08-14 14:56:18 +02:00
Philipp Oeser
4cefe0ec80 Fix #110723: cant drop object name on object field/socket in node editor
Reason was a difference in poll functions (dropbox poll function vs.
operator poll function).

So the dropbox was actually recognized as being active (see
`dropbox_active`) but then when actually dropping, the corresponding
operator wasnt called (but instead another operator was).

In detail, the way `wm_handlers_do_intern` works, it checks all
dropboxes poll function if one succeeds it calls the dropbox operator.
But if that operators poll function fails, `wm_handlers_do_intern`
happily continues and "ends" the drop operations in a way we dont
actually get to the "real" dropbox & operator that was also recognized
as being active.

In the case of the report:
- dropbox for `UI_OT_drop_name` is active
- dropbox poll for `NODE_OT_add_object` (`node_object_drop_poll`)
succeeds though
- operator poll for `NODE_OT_add_object` (`node_add_object_poll`) fails
(it checks `UI_but_active_drop_name` already)

So in order to make this work, add the check for `UI_but_active_drop_name` to two dropbox poll
functions (and remove from the operator polls).

Probably good for LTS as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/110929
2023-08-14 13:12:33 +02:00
Almaz-Shinbay
485c98cc2c Outliner: Port pose base elements to new tree-element code design
No user visible changes expected.

Part of #96713, continuation of work started in 249e4df110 and 2e221de4ce.
Refer to these for a motivation and design overview.

Adds a new class for pose base elements.

Pull Request: https://projects.blender.org/blender/blender/pulls/110806
2023-08-14 12:36:06 +02:00
Jeroen Bakker
e878692221 Cleanup: code formatting 2023-08-14 12:33:13 +02:00
Julian Eisel
5dcf704324 Refactor: Solve invalid icon-id enum values, use type alias
Some code attempted to use `BIFIconID` instead of `int` to pass around
icon-ids. Problem is, that this is just a subset of the allowed ids,
more icons may be created at runtime and extend the range of valid
icon-ids. Such icons could give runtime warning prints.

Idea is to use a `using BIFIconID = int;` instead. This way there is
still a descriptive type name, while the whole dynamic range of possible
icon-ids is supported.

Additionally multiple `using BIFIconID = int;` declarations are valid,
so we can place these in multiple headers and use the type name in APIs
instead of just `int`, whithout having to include a single header
defining them. A type mismatch (one instance differs from the others)
will result in a compiler error.

Pull Request: https://projects.blender.org/blender/blender/pulls/111052
2023-08-14 12:06:35 +02:00
Johannes J
769fe07668 GPU: Fix signed/unsigned mismatches in shader code
This fixes a crash when switching to face selection mode in the UV
editor.

Pull Request: https://projects.blender.org/blender/blender/pulls/111094
2023-08-14 11:22:03 +02:00
Sergey Sharybin
9094a3a9ab Refactor: Make display_init a base render method
Should be no functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/111047
2023-08-14 11:18:28 +02:00
Sergey Sharybin
f604235206 Refactor: Make display_clear a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
ace2f6a183 Refactor: Make display_update a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
964b83aa8b Refactor: Make current_scene_update a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
0193c5029b Refactor: Make stats_draw a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
ed058088b3 Refactor: Make progress a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
6df46fd2fc Refactor: Make draw_lock a base render method
Also semantically separate draw_lock and draw_unlock, as it
is more clear than a single method with a boolean argument.

Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
bddc790166 Refactor: Make test_break a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
dd5ef3f91a Refactor: Make prepare_viewlayer a base render method
Should be no functional changes.
2023-08-14 11:18:24 +02:00
Sergey Sharybin
c664618e10 Cleanup: Add _cb suffix to the callbacks stored in Render
Should be no functional changes.

Preparing for introduction of member function which are
available in the base class.
2023-08-14 11:18:24 +02:00
Richard Antalik
bf001961f3 Fix #110861: VSE operators disregards locked strips
Operators slip, swap and split operated on strips that are locked.
2023-08-14 05:54:27 +02:00
Campbell Barton
cdab5d82d7 CMake: remove non-functioning logic to delete files before installing
This logic has not been working since 2014 [0] although it was briefly
fixed (by accident) when TARGETDIR_VER was made an absolute directory
[1] (since reverted as that caused problems with CPACK/WIN32).

"file(REMOVE_RECURSE ${TARGETDIR_VER})" would attempt to remove:
- "${CMAKE_BINARY_DIR}/${TARGETDIR_VER}" instead of
- "${CMAKE_INSTALL_PREFIX}/${TARGETDIR_VER}".

While this could be re-enabled by correcting the path,
it slows down the install target by copying files every "install".

This could be made to detect changes and only cleaning files in this
case however this ends up being fairly involved, see: PR !111084.

As stale files haven't been causing problems as far as I'm aware,
remove this code.

[0]: e43c5fa005
[1]: d605cc7574
2023-08-14 12:57:24 +10:00
Richard Antalik
675b66d852 Fix #110846: VSE tools region not updated with other regions
Add listener to the region.
2023-08-14 04:07:15 +02:00
Clément Foucault
d844c5a13a Metal: Add support for Multi-Viewport
This seems to work but there is an issue with fragment
shader not getting the correct value.

Authored by Apple: Michael Parkin-White
2023-08-13 23:46:53 +02:00
Clément Foucault
c7dce76619 Metal: Various fixes
Authored by Apple: Michael Parkin-White
2023-08-13 23:42:06 +02:00
Clément Foucault
743d78461f GPU: Make test compile without OpenGL 2023-08-13 23:38:07 +02:00
Bastien Montagne
29930ef589 readfile: Move Object proxy validation code from lib_link to do_version.
This is now deprecated data, no reason to keep such logic in the main
lib-linking code of Object ID.
2023-08-13 13:43:54 +02:00
Campbell Barton
282944caac CMake: revert use of CMAKE_INSTALL_PREFIX as it broke CPack on WIN32
Absolute paths aren't supported when using CPack on WIN32.
This effectively reverts [0] & [1].

[0]: 7209ed80bb
[1]: d605cc7574
2023-08-13 21:34:03 +10:00
Bastien Montagne
6cd7eda1c6 Fix (unreported) wrong handling of depreacted non-Empty instantiating objects in readfile code.
Fixing this is do-version work. Having that kind of logic in lib-linking
code is... beyond despicable.
2023-08-13 13:10:27 +02:00
Bastien Montagne
44e3995cf5 Cleanup: Simplify 'expand' main loop in readfile code.
No behavioral change expected here.
2023-08-13 11:25:24 +02:00
Campbell Barton
d605cc7574 CMake: use CMAKE_INSTALL_PREFIX in more places
Also remove quotes for consistency as they aren't needed and weren't
used in quite a few places.
2023-08-13 14:27:47 +10:00
Campbell Barton
329474f018 CMake: fix for WITH_DOC_MANPAGE failing to run Blender
Use the installed executable location instead of the build location,
this would work in situations when the build location had relevant
files accessible but this is often not the case.
2023-08-13 14:19:57 +10:00
ChengduLittleA
337c47275c Fix #110917: Multiply UI_SCALE_FAC to view scroll operators
Previously the delta value is hard coded (40), this would be too slow on
high DPI screens. Now multiply that by `UI_SCALE_FAC` will solve the
issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/110940
2023-08-13 04:57:36 +02:00
Hans Goudey
9804b2244a Cleanup: Make sculpt face visibility test inline
This simple function just performed a null check and an array lookup.
Just writing it in the few places its used works fine too, and avoiding
the function call per triangle can improve and make the check clearer.

Also, avoiding the abstraction makes the "node fully visible" check
when building the PBVH more obvious; that has been refactored here.

Pull Request: https://projects.blender.org/blender/blender/pulls/111072
2023-08-12 23:58:26 +02:00
Hans Goudey
b04a72866d Revert "Multires: Simplify grids normals update and grid to face map"
This reverts commit c97178fa2e.

This was committed to main by mistake, it was meant for a local branch.
2023-08-12 16:38:39 -04:00
Hans Goudey
d38a0cf537 Fix: Potential error in RNA operator description callback
Avoid freeing the RNA list before converting the result to std::string.
2023-08-12 16:29:51 -04:00
Guillermo
0f501865a5 Fix #111073: Crash when F3 is pressed
Initializing a string whit `nullptr` causes undefined behavior.

Pull Request: https://projects.blender.org/blender/blender/pulls/111075
2023-08-12 22:21:50 +02:00
Hans Goudey
c97178fa2e Multires: Simplify grids normals update and grid to face map
The goal is to move to more data oriented design, reducing memory
usage and simplifying code by clarifying data access, avoiding
unnecessary levels of abstraction, and reusing code.

- Simplify threading with the C++ threading API
- Pass the faces to update with an IndexMask instead of a pointer array
  - IndexMask uses less memory and simplifies masking and iteration
- Store the grid to face map with indices instead of pointers
  - Now this is exactly the same as `build_loop_to_face_map`
2023-08-12 12:20:10 -04:00
Hans Goudey
3d6a8ab54f Cleanup: Remove unused argument to PBVH draw 2023-08-12 12:17:25 -04:00
Iliya Katueshenock
63fd2575e6 Nodes: move more rna code to geometry node files
Continuation of 43667b807e.
Only geometry nodes with shared enum arrays.

Pull Request: https://projects.blender.org/blender/blender/pulls/111056
2023-08-12 17:36:42 +02:00
Germano Cavalcante
6332eecda0 Fix #110970: knife project is broken
Error in 5cdec2f12a

`ED_view3d_win_to_segment_clipped` returns the ray_end directly.

The code was treating it as if it were a direction.
2023-08-12 10:47:52 -03:00
Campbell Barton
7209ed80bb CMake: use CMAKE_INSTALL_PREFIX for the install destination
Use the variable instead of "." for the install destination.
While they're equivalent, it's not discoverable where the value
for "." is set.

It also results in paths containing "/./", while valid isn't so nice
if the paths are copied from the terminal for use elsewhere.
2023-08-12 23:44:06 +10:00
Campbell Barton
848e808b8a Cleanup: various non-functional C++ changes, correct doxy groups 2023-08-12 18:48:20 +10:00
Campbell Barton
311fa9768d Cleanup: spelling in comments 2023-08-12 16:29:51 +10:00
Campbell Barton
4f59b33873 Cleanup: minor changes to discover_nodes.py
- Compile & reuse the regular expression.
- Use `fh` instead of `f` for the file-handle.
- Correct typo.
2023-08-12 16:29:50 +10:00
Campbell Barton
86c4ce66af Cleanup: pass ICON_NONE instead of zero to UI functions 2023-08-12 16:29:49 +10:00
Campbell Barton
12538b75e9 Cleanup: unused but set variable warning 2023-08-12 16:29:48 +10:00
Pratik Borhade
d87db8d569 Fix #111024: Crash when adding attribute to curve object
After 12ef20990b, attributes and vertex group names were checked
simultaneously to fix the name collision. But this results in crash when
new attribute is added to curve object (it searches for vertex group
list). To avoid the crash, check for supported id types in new function
`BKE_id_supports_vertex_groups`.

Pull Request: https://projects.blender.org/blender/blender/pulls/111036
2023-08-12 07:37:37 +02:00