Commit Graph

103188 Commits

Author SHA1 Message Date
Julian Eisel
31e1a32378 Fix 1 pixel overlap in tool or asset shelf header background drawing
When the tool settings or asset shelf header would draw with some
transparency, the separator line between regions would visibly overlap
the background behind buttons, which looked unpolished. Ensure there is
no overlap (but also no gap, which became visible after accounting for
the separator line in the background drawing).
2023-09-28 19:30:05 +02:00
Jason Fielder
06f27b564c Fix: DRW: Flickering and sync in Metal
Flickering caused by in-flight SSBO data
overwrites has been resolved by ensuring
data updates go into a new buffer while
existing data is in flight.

GPU_finish has also been removed from
SSBO read due to its frequent mid-frame use
limiting performance.

Authored by Apple: Michael Parkin-White

Pull Request: https://projects.blender.org/blender/blender/pulls/113019
2023-09-28 18:42:49 +02:00
Harley Acheson
18fcb9b3fb UI: Show Waiting Mouse Cursor While File Loading
Change the mouse cursor to a "waiting" one during the majority of the
time that a blend file is loading.

Pull Request: https://projects.blender.org/blender/blender/pulls/112986
2023-09-28 17:19:52 +02:00
Julian Eisel
b82f3e90ca Fix #112985: Outliner header context menu shows asset operators
The Outliner exposed its context to the header as well which makes some
operators available there. While technically this is all fine, it's a
bit odd to the user, since they don't expect data-editing operations
when right clicking on a header that itself doesn't list data. Instead
only expose the Outliner context in the main region.
2023-09-28 16:19:38 +02:00
Brecht Van Lommel
66056fead0 Fix #112632: crash batch generating previews with Cycles
Don't assume existence of GPU backend in (background) preview rendering.

Also add null pointer checks and rely on assert instead to detect
invalid usage of GPU_render_begin/end, so that potential future mistakes
don't cause crashes.

Pull Request: https://projects.blender.org/blender/blender/pulls/112971
2023-09-28 16:13:09 +02:00
fff9da576c Anim: add overview of bone collections to bone property panel
Add an overview of those bone collections the active/pinned bone is
assigned to.

This overview was originally there, showing the armature layers and the
bone group. This is now replaced by a list of the bone's collections. The
only possible interaction is unassigning the bone & toggling visibility
of the bone collections.
2023-09-28 15:52:45 +02:00
Philipp Oeser
cd557f0636 Fix: remove non-functional choice of weightpaint mode from lattices
Lattices would give the choice of going to weightpaint mode (which would
fail immediately because of `vwpaint::mode_toggle_poll_test`) because it
was marked as a compatible mode in `ED_object_mode_compat_test`.

I dont think this was ever supported properly, why this was marked as a
compatible mode is unknown (I stopped tracing git history at
deebf4f8f0d7).

Even if it was at some point, weightpaint mode nowadays is totally
depended on Mesh, so seems better to just remove it from Lattices.

Pull Request: https://projects.blender.org/blender/blender/pulls/112411
2023-09-28 15:43:50 +02:00
Jeroen Bakker
c9491b395c Cleanup: Make format 2023-09-28 15:15:08 +02:00
Hans Goudey
79d0b71751 Fix #112957: Incorrect PBVH multires grid iteration
The grid was pointer was moved to the next element at every loop, which
made `vi.grid` and `vi.mask` disagree. Instead, iterate the grid before
accessing data, so the pointers agree. To avoid unrolling the first loop
iteration or adding a branch for the first iteration, start the grid at
a -1 offset.

Pull Request: https://projects.blender.org/blender/blender/pulls/113015
2023-09-28 14:56:26 +02:00
Jacques Lucke
9ad6957574 Fix #107353: array cap broken on empty mesh
The array modifier used to output the start cap even if the
mesh is empty. This behavior was unintentionally changed in
8b2556e8d8. This patch brings back the old behavior.

The use case for this was to load an evaluated mesh of one
object into another object. So it was always kind of a hack, but
there is still no good reason to change the behavior.

Nowadays, one should just use the Object Info node in Geometry
Nodes to achieve the same result.
2023-09-28 14:55:31 +02:00
Jacques Lucke
03a9425f8a Fix: crash when entering edit mode on mesh used as start/end cap 2023-09-28 14:55:31 +02:00
6d0e6f0f3e Anim: remove pose.bone_layers operator
Remove the obsolete `pose.bone_layers` operator, it's been replaced by
bone collections.
2023-09-28 14:20:24 +02:00
Aras Pranckevicius
bf23d0e53c Fix #112011: PLY export broken when mesh contains faces with >255 vertices
MPoly -> offset indices refactor (7966cd16d6dc4) did not realize
that due to forced triangulation the mesh changes, so we need
to re-fetch the faces array after triangulating. Fixes #112011
2023-09-28 14:21:23 +03:00
Philipp Oeser
16e4eeb9c0 Text objects: make CharInfo mat_nr zero-based
For text objects, the CharInfo mat_nr material index used to start at 1
(not at zero like for meshes or nurbs).
Code was mostly considering this (but not in all places, so material
index handling (removing/moving) could still go wrong.

As an alternative to !109746 (where it was made sure all places would
make the right assumption about mat_nr starting at 1), this PR now
changes the mat_nr to be zero-based.

This is more in line with other places handling material indices.

Versioning code is in place to properly convert old files.

Fixes #109491

Pull Request: https://projects.blender.org/blender/blender/pulls/112954
2023-09-28 11:46:52 +02:00
Lukas Tönne
9e79487c4f Fix #112588: Hide node panels when all sockets are hidden
The panel state gets a new flag to indicate if content is visible.
This gets updated in the visibility pass during node drawing.

Pull Request: https://projects.blender.org/blender/blender/pulls/113003
2023-09-28 11:24:48 +02:00
Campbell Barton
fc8b1411cd Cleanup: correct struct comments & help text for batch loading utility 2023-09-28 14:28:12 +10:00
Campbell Barton
be7c8fac6d Fix #112990: save pre/post/post/fail don't run for unwritable paths
When the destination path isn't writable - the save callbacks wouldn't
run. Supporting this can be useful so handlers can unlock a file
before saving, see #88493.
2023-09-28 14:13:05 +10:00
Campbell Barton
881bb81763 UI: don't access recent-search.txt when disabled or in background mode 2023-09-28 13:42:29 +10:00
Campbell Barton
c4a67b377b Cleanup: quiet missing declaration warning 2023-09-28 12:05:47 +10:00
Campbell Barton
ffbe9add7c RNA: EnumPropertyItem values don't exceed the underlying range
When the type of an enum is known (char, short, int .. etc)
check the values used in the EnumPropertyItem are valid for that type.

This would have made the error from [0] fail at build time.

[0]: 928721c59eb01ede39f97946cb8a9606c0e62fb3
2023-09-28 12:05:47 +10:00
Campbell Barton
640d49c38a RNA: set range for "uchar" type int property
This avoids the need to explicitly set inline, extract the int range
into a function (needed to support validating the RNA range for enums).
2023-09-28 12:05:47 +10:00
Campbell Barton
928721c59e Fix broken UV header caused by out-of-range value in DNA
The enum value was outside 'char' range.
2023-09-28 11:20:53 +10:00
Clément Foucault
508fa8d4b8 Fix #112963: EEVEE: Wrong specular from lights
This was caused by the wrong LUT being sampled.

This cleans-up the utilTex layer define usage
and implement the small optimization marked
as todo.
2023-09-27 23:19:18 +02:00
Hans Goudey
8e188ed55b Fix #112817: Nodes incorrectly "fully masked" after expand face sets
The expand operator reused `SCULPT_UPDATE_MASK` even when it
changed face sets, not the mask. That triggered incorrect behavior in
`node_update_mask_redraw` when there was no mask layer, which caused
nodes to be incorrectly marked as fully masked (and therefore optimized
out of later operations).
2023-09-27 17:11:35 -04:00
Hans Goudey
ca447ef542 Cleanup: Move sculpt mask update to a separate function
There's no reason to use a general "update vertex data" function,
that just confuses things.
2023-09-27 17:11:28 -04:00
Germano Cavalcante
e7a0fbdf30 Merge remote-tracking branch 'origin/blender-v4.0-release' into blender-v4.0-release 2023-09-27 18:03:33 -03:00
Germano Cavalcante
bcaac0421b Fix snap versioning error 2023-09-27 18:03:01 -03:00
Hans Goudey
2ec192a54a Fix: Extra menu separator with node tools in nested menus 2023-09-27 16:14:49 -04:00
Hans Goudey
772061d57f Fix: Missing node group name in non-asset node tool redo panel
We need to store the name as an operator property for this case.
2023-09-27 16:14:49 -04:00
Germano Cavalcante
fb556c75df Snap: New icons
For Blender 4.0 we decided to support individual icons for different
snap elements.

This was originally contributed by Erik Abrahamsson as !107054 with
some contributions by myself (Germano).

This set of icons being simple geometric symbols, that should be
familiar to CAD artists.

Note that Face and Volume share the same icon (circle). This is
deliberate since they communicate a similar functionality - are not
aimed at precision snapping the same way the vertex or perpendicular
are.

Also note that later we should also try to change the icons shown in
the snap menu to match the symbols that the artists see in the preview
window.

———

On the decision process:

The version currently in main (and rolled back here) was an initial
attempt of aggregating more information to the icons (e.g., by aligning
the icons to the target edges) while making them more suitable to
Blender. After presenting both options to (parts of the) community,
there was nothing fundamentally broken found with either option, though
options diverged over personal preference.

With that in mind, in the latest UI module meeting it was agreed to use
the original proposal then.

This final call was proposed by Dalai Felinto on his role of
commissioner (stakeholder) for the snap polishing tasks (#73993) and
designer for the related Snap Base design #66484.

———

This commit reverts commit 9c2e768f5b.

The reverted icons (referred originally as minimalistic icons) may be
proposed later as a separate theme option.
2023-09-27 16:59:16 -03:00
Hans Goudey
dfa55f036e Fix: Assert requesting vertex group for unsupported object type
Opening the "Heist" 3.4 splash screen would trigget an assert
in `BKE_id_defgroup_list_get`.
2023-09-27 15:33:34 -04:00
Damien Picard
1dfbc1ef83 UI: fix and improve a few messages
- "Tapping Alt...": remove newline in tooltip.
- Add descriptions for the From Left and From Right of the Shear
  Keyframes operator's direction items, instead of just "foo":
  - "Shear the keys using the left key as reference", and
  - "Shear the keys using the right key as reference".
- "Affects the value" -> "Affect", use the imperative.
- "Increase or decrease the value of selected keys \n
  in relationship to their average"
  -> "Scale selected key values by their combined average":
  remove the newline and rephrase the unclear description. New
  description by Harley Acheson.
- "Redefine equalizer graphs": this is an operator name, it should be
  title case.
- "USD Skeleton Import" warning: inconsistent whitespace.
- "%s: Joint weights and joint indices size mismatch size mismatch for
  prim %s": remove duplicated "size mismatch".
- "USD export:  couldn't copy texture tile from %s to %s": remove
  duplicate whitespace, change "couldn't" to "could not" to respect
  the style guide.
- "Temp. Diff." -> expand the abbreviation to "Temperature Difference"
- "Registering node tree class:" do not use formatting just to reduce
  redundancy in a few messages, but write it explicitly each time.
  This is more legible, and much better for translations.
- "Absolute time alignment while translating" -> "Absolute time
  alignment when transforming keyframes" because this applies to all
  transforms, not translation only.
- "# characters defines the [...] length of frame numbers" ->
  "define" (typo), "padding" is more specific than length.

Pull Request: https://projects.blender.org/blender/blender/pulls/112975
2023-09-27 21:29:02 +02:00
Brecht Van Lommel
e9fb0be754 Fix clang link error after recent changes in 462010c 2023-09-27 20:15:02 +02:00
Julian Eisel
5017767e11 Fix tools header background aligns wrong if region is flipped to bottom
The region background draws rounded corner so it looks more or less like
a tab coming out of the region above/below. So this needs to change
together with the region alignment.
2023-09-27 19:55:11 +02:00
Hans Goudey
7449f0e14c Fix #109599: Setting custom normals can skip marking some edges sharp
Caused by a subtle logic change in 17d161f56537d424d369 and follow ups.

Because they used to be stored in a singly-linked list, the old storage
for `corners_by_space` was backwards compared to the order each corner
was discovered in `split_loop_nor_fan_do`. I don't fully understand how
yet, but the logic when setting edges sharp based on divergence between
neighboring corner normals in a space relied on the iteration direction,
so as a fix, just iterate backwards over the corners in each space.
2023-09-27 13:47:25 -04:00
Hans Goudey
8774b20477 Fix #112961: Crash marking Collection as an Asset
An ID type's asset type info may be null.
2023-09-27 13:47:10 -04:00
Brecht Van Lommel
488469e7c5 Fix excessive padding at bottom of nodes with panels
After refactoring in 2f1b8f59e37.
2023-09-27 19:05:41 +02:00
Brecht Van Lommel
ea3814c3ed Fix subsurface scattering radius UI being unnecessarily compact
Now that this is in a panel this can take up more space.
2023-09-27 19:05:41 +02:00
Iliya Katueshenock
462010c61a Fix #112439: Don't allow hiding sockets of Reroute node
Reroute node consists only of a socket, it has no body.
Don't allow hiding sockets of reroutes anymore, since it could make the
node invisible or prevent links from being connected to it.

The versioning ensures that the sockets on reroute nodes are not hidden.

Pull Request: https://projects.blender.org/blender/blender/pulls/112965
2023-09-27 18:42:46 +02:00
Germano Cavalcante
48204b630c Fix #112909, #112922: Weld modifier crashes in some situations
The weld modifier was experiencing crashes due to the `switch_to`
variable occasionally pointing to a collapsed corner.

The encumbrance of the code implementation utilizing `switch_to` was
proving to be problematic as it was escalating the complexity of
maintenance. 

To resolve the issue, a code rewrite was conducted.

The new implementation uses a `loop_next` in place of `switch_to` for
skipping corners.

This modification streamlined the code and improved its stability.

However, this solution does come with minor drawbacks. There is a small
increase in memory consumption and the corner group detection process
is now slightly more computational intensive.

Also the test files need to be updated.
2023-09-27 13:00:06 -03:00
Hans Goudey
06df854112 Cleanup: Make format 2023-09-27 10:15:42 -04:00
Hans Goudey
03f6fe81b2 Fix: Missing node asset unassigned non-asset label
The label should be displayed when there are no assets too.
2023-09-27 10:07:15 -04:00
Hans Goudey
1a7527b1df Geometry Nodes: Move node tools out of experimental
See #101778

Pull Request: https://projects.blender.org/blender/blender/pulls/112927
2023-09-27 16:04:36 +02:00
Julian Eisel
ff78d33bb4 UI: Draw Image editor tool header transparent with button background
Same as 55eaa755e3, but for the Image Editor, since this should be done
consistently for all editors using tool headers with region background.
2023-09-27 15:48:20 +02:00
Hans Goudey
9e495c5b06 Geometry Nodes: Store tool group in a separate editor property
This enables switching back and forth between the modifier and tool
contexts of the geometry node editor without losing the assigned tool
node group.

See #101778

Pull Request: https://projects.blender.org/blender/blender/pulls/112926
2023-09-27 15:47:22 +02:00
Falk David
4f617bc728 Fix: Expose GPv3 RNA only in experimental
The `blender-v4.0-release` branch would not build because some parts of grease pencil v3 were still exposed when experimental features are disabled.

This is hiding the relevant parts behind `#ifdef WITH_GREASE_PENCIL_V3` to make sure they are only built when the experimental features is enabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/112953
2023-09-27 15:46:18 +02:00
Julian Eisel
7ec7dac860 Fix background drawing in tool header after changing tools
After changing tools (and possibly other context), the buttons section
background drawing would be broken for one redraw, so the full region
would be drawn with a background, rather than just behind the button
boundaries.
2023-09-27 15:45:39 +02:00
Thomas Dinges
8c25952886 Release cycle: Bcon3 for Blender 4.0 2023-09-27 12:52:04 +02:00
Falk David
00d4b5562b Fix BKE_deform.h compilation error on windows
The issue was that the pure c++ functions were defined within a `extern C` block.

Pull Request: https://projects.blender.org/blender/blender/pulls/112947
2023-09-27 12:11:32 +02:00
Julian Eisel
1cb3b83d33 Fix division by zero when split regions are hidden
Code has special handling so that only the first of two split regions
needs to be flagged as hidden. If the second one is also flagged that
can have some unwanted side-effects. Code to add the region resizing
edges relied on the region visibility flags though, rather than the
visibility check that respects this handling of split region hiding. So
code would run that is only intended for un-hidden regions.
2023-09-27 12:08:09 +02:00