The issue was that the parent node group was not necessarily updated already
when the tracing code ran. So use socket identifiers instead of indices to try
to find corresponding sockets between group nodes and their corresponding
node groups.
This PR improves alignment between playhead and keyframe indicators,
especially noticeable at small UI scale sizes where we are currently
always out by one pixel. This is because keyframe icons are all odd
widths while the playhead line is an even width. This PR mostly makes
that line an odd width, with other small adjustments.
Pull Request: https://projects.blender.org/blender/blender/pulls/142904
When using link-drag-search to create bundle or closure nodes, the newly created
nodes are already synced automatically. Now this automatic syncing also happens
when an empty node is first linked. If there are any sockets already, the
automatic syncing does not happen as it can be unintentional. In this case the
user can just click the sync icon in the node header to update the sockets.
Pull Request: https://projects.blender.org/blender/blender/pulls/143744
This fixes an edge case in how the max acceptable edit distance is calculated
for deletions in fuzzy search, wherein the padding added to the max error count
could be negative when the query was longer than the matched term, producing a
max distance of zero.
This came up in chat a while back, where someone noted that, in the compositor,
searching for "bluir" wouldn't return the blur nodes; "blu" worked, "blui"
worked, but "bluir" returned no results, despite all three having equal edit
distances (1 insertion, 1 substitution, and 1 deletion, respectively). The edit
distance metrics themselves are calculated correctly; the issue was just with
how the distance threshold was set.
Pull Request: https://projects.blender.org/blender/blender/pulls/143741
This moves code used for tracing bundles and closures to a separate file. This
code is used to e.g. detect which Separate Bundle node a Combine Bundle node is
linked to. This allows providing automatic socket update operators for these
nodes. Similarly for closures.
Pull Request: https://projects.blender.org/blender/blender/pulls/143734
First part of design defined in #140360
Images in PR
This PR does two things:
- Creates new panel in theme preferences called "Common" that
doesn't belong to any editor
- Moves "Preview Range" property in common, and removes it
from animation editors.
Now, there is a single theme property for preview range, rather
than 5 for each animation editor.
Co-authored-by: Pablo Vazquez <pablo@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/140686
Shader compilation no longer uses the `WM_job` API.
Add a `GPU_shader_batch_is_compiling` function to query if there's any
shader compilation happening, and update `bpy_app_is_job_running` to
handle this as a special case.
Pull Request: https://projects.blender.org/blender/blender/pulls/143559
This PR removes the "Last Resort" font from the stack. Instead uses a
custom "not def" glyph, defined as an SVG file. This glyph is shown
when requesting a character not found for text inputs, text editor, and
for Sequencer text strips.
Pull Request: https://projects.blender.org/blender/blender/pulls/132032
- BLF font flags were an untyped enum; change to actual enum and
update usages from int to that.
- Move all BLF API enums to their own header, so that if something
needs just the enums they don't have to include whole BLF_api.hh
Pull Request: https://projects.blender.org/blender/blender/pulls/143692
Previously, the code assumed that closures are always created with the closure
zone and end up in the Evaluate Closure node. Similarly with bundles. While true
right now, this won't be true anymore with e.g. #141264 where unlinked input
sockets can also have a closure.
Pull Request: https://projects.blender.org/blender/blender/pulls/143725
It's broken and it's not needed anymore, since we require OpenGL 4.3.
Fix#142620
Note: Debug callbacks still won't work for compilation threads,
but that's relatively harmless and should cause no issues for the user.
This will be fixed in 5.0 with #142715.
(4.5 backport candidate)
Pull Request: https://projects.blender.org/blender/blender/pulls/142716
Use the form "Processing something..." (gerund, sentence case,
ellipsis) for running jobs progress label, according to Blender's
Human Interface Guidelines.
Pull Request: https://projects.blender.org/blender/blender/pulls/141573
The new anti-aliasing feature added in 299a581b1b didn't contain
versioning for startup.blend defaults, this caused the versioning
implemented in versioning_450.cc to be used instead, which was meant
to ensure older files stay the same. This thus caused the feature to be
effectively disabled in default/factory startup files.
Pull Request: https://projects.blender.org/blender/blender/pulls/143711
Proper fix, using `RNA_def_property_enum_bitflag_sdna` to mask the
affected bitflags when setting the value, and not overwrite unrelated
other bitflags.
Also similar fix/cleanup in DataTransfer modifier, who was also using
custom setters to handle this masking, instead of defining the
properties with `RNA_def_property_enum_bitflag_sdna`.
And added some documentation to `RNA_def_property_enum_sdna` and
`RNA_def_property_enum_bitflag_sdna`, to try to make it more explicit
what they are doing and what are their expected usecases.
Use Nodes were removed in d88d4cc8 from the UI, but marked deprecated
in Python API. Since we decided to remove `world.use_nodes` and
`material.use_nodes` for the shader editor (instead of deprecating
them), we also remove `scene.use_nodes`.
This PR only replaces the deprecated `scene.node_tree` with
`scene.compositing_node_group` where necessary. #143619 will fully
remove `node_tree`
Pull Request: https://projects.blender.org/blender/blender/pulls/143578
The node uses anisotropic sampling (which is currently not supported for the
extension mode), so extension modes are only rendered in the node if any
other interpolation method, but anisotropic is selected.
Pull Request: https://projects.blender.org/blender/blender/pulls/143367
The issue was that getting the `bAnimContext` fails in the
Action Editor if there is no action. This lead to the keylist being a
nullptr and Blender crashing.
The fix is to always create the keylist, and just keep it empty in case
the anim context cannot be created.
Also fixes: #143306
Pull Request: https://projects.blender.org/blender/blender/pulls/143524
Generate mouse events from touch devices on Wayland.
The code tracks a single contact point and converts it to mouse moves,
LMB presses & releases. Multi-touch, pinch & swipe aren't yet supported.
Addresses #121449.
Ref !143416
Co-authored-by: Campbell Barton <campbell@blender.org>
Since [0], removing degenerate points at the beginning of the hull
would re-order points so the last were moved to the beginning.
While this isn't an error, having the resulting hull *sometimes*
re-ordering it's result based on internal error correction isn't ideal.
Document that the first point in the hull has the lowest Y value and
update tests to ensure this.
Also correct the doc-string regarding the hulls cross-product
and tests this is working as documented.
[0]: 87f9fd8fb3
There are a number of issues with the "Active Vertex" mode for the Set
Pivot operator in Sculpt Mode:
1. The menu option did not require the cursor, so moving off of the mesh
and using this option would previously pick the last value in the
`SculptSession`
2. The active vertex information was not updated when this was called,
so even if the user invoked this operator with their mouse on the
mesh via the Operator Search popup, it would not use the right
position. This also means behavior would differ depending on if a
brush tool was being used or the transform tools.
To fix these issues, the relevant flags are set for the operator as a
whole, and the internal active vert information is updated prior to
being requested for this operator.
Note that this does add an extra mouse click required for calling the
operator via the Operator Search menu, but given that it only worked in
specific situations before, this is an acceptable tradeoff. Assigning a
shortcut to this operator removes this requirement, as expected.
Pull Request: https://projects.blender.org/blender/blender/pulls/143675
This PR adds three tests relating to the mask node, which makes a new
mask data block for `node_mask`, creates an invalid input test,
and covers the `fixed/scene` case.
Coverage:
- Function: 88.89% -> 88.89%
- Line: 91.41% -> 94.53%
- Region: 83.33% -> 88.10%
- Branch: 62.50% -> 81.25%
Pull Request: https://projects.blender.org/blender/blender/pulls/142447
When VFont objects use a custom (non-default) font and reference a
character that is not contained in that font, our intention is to show
placeholder curves that represents "not found". Instead we are
currently showing the ".notdef" glyph if there is one defined inside
the font or blank space if not. This PR fixes that by altering
BLF_character_to_curves so that it returns a boolean success instead of
character advance. This way we can properly distinguish "not found"
from the return of other empty, non-advancing characters.
Pull Request: https://projects.blender.org/blender/blender/pulls/143484