MeshRuntime was null but required by the implementation
of the attribute API. This code is much hackier than necessary
anyway and should just use BMesh CustomData directly rather
than trying to be clever.
Also part of #122398.
Pull Request: https://projects.blender.org/blender/blender/pulls/146674
`world.use_nodes` was initially removed in #142342. However, in #141278
we decided not to remove `material.use_nodes` from the API to
avoid breaking exporters. This commit brings the removed
`world.use_nodes` back and marks it as deprecated.
Pull Request: https://projects.blender.org/blender/blender/pulls/146629
Even when disabled, one can force the tooltip display by holding ALT
**prior** to entering/hovering a control. This PR clarifies that.
(also clarified in the actual manual separately)
Resolves#146689
Pull Request: https://projects.blender.org/blender/blender/pulls/146707
This patch removes the XY scale inputs from the Displace node. The
inputs were redundant since they were just multiplied by the vector.
This simplifies the node and improves performance slightly.
Additionally, the Vector input was renamed to Displacement since it no
longer specifies a direction.
Pull Request: https://projects.blender.org/blender/blender/pulls/146356
Indirectly linked libraries are supposed to be put under their 'best
parent' library, this has been broken in the outliner for some times.
for several reasons.
This commit addresses the 'outliner hierarchy building' part of the
problem. The 'everything ends up directly linked' is addressed by
!146667.
Pull Request: https://projects.blender.org/blender/blender/pulls/146669
Regression from 435b6743fd, when considering UI ID usages to define
if IDs are weekly direclty linked, cases where this should not be the
case (e.g. Outliber ID pointers) ended up making them directly linked.
So essentially, all linked data became directly linked when writing the
blendfile on disk!
Fixed by adding a new `IDWALK_CB_WRITEFILE_IGNORE`, to tell the
writefile code that it can ignore this ID usage (similar to the existing
`IDWALK_CB_READFILE_IGNORE` one).
Pull Request: https://projects.blender.org/blender/blender/pulls/146667
This allows to share the parsed structure between each
preprocessing step if no mutation occurs.
Also remove `matrix_constructor_linting` as this is
now enforced by the C++ compilation. Same thing for
`array_constructor_linting`.
Pull Request: https://projects.blender.org/blender/blender/pulls/146666
It is possible, though unlikely, that some sculpt mode runtime data will
be uninitialized when various application handlers run. This commit
makes the minimal change to avoid crashing in this case when exiting
sculpt mode when Dyntopo is enabled.
Pull Request: https://projects.blender.org/blender/blender/pulls/146647
As described in #135095, this adds a "mirror" option to the "Join as
Shapes" and "Update from Objects" operators, and additional menu items
with the option enabled. Like the operators, this is a convenience
feature that's functionally the same as selecting all shape keys with
changed data and running the existing "Flip" operator.
Pull Request: https://projects.blender.org/blender/blender/pulls/144098
Recent change 3a6a663a15 has some logic issues.
First, the grain size was clamped to be never lower than 256, which
doesn't make sense since the size of the array is never greater than
the number of threads. The numbers used in the division were also large
enough that multithreading wouldn't be used in many realistic cases
anyway. There's no need to cap the grain size at 1024, and also
`safe_divide` doesn't make sense in this scenario.
Pull Request: https://projects.blender.org/blender/blender/pulls/144872
To help reduce confusion, remove this property as we believe it has
little to no actual utility. Visibility, instead, remains controlled
with the `evaluation_mode` option.
Ref #134012
See PR for discussion and description of what effect this option used to
have.
Pull Request: https://projects.blender.org/blender/blender/pulls/144600
This is a port of iOS commit f3f8647 to main, for Xcode archiving to
also work for macOS bundles, allowing the bundle to be archived and
later distributed via Testflight, App Store Connect, etc...
Additonal Xcode property also had to be added to the extern draco shared
library target to prevent it from being included in the Xcode archive
(an implicit behavior for `SHARED` CMake libraries), without this,
the archive would get polluted, preventing it from being properly
recognized as a proper app bundle archive.
Pull Request: https://projects.blender.org/blender/blender/pulls/146027
So that is it possible to edit Linear HSV. Somehow the two enums don't feel
very elegant to work with, but I don't immediately have a better idea on
how to organize this UI.
I also tried to always show both the RGB and HSV sliders, but it felt
very noisy to have the HSV slider updating as you edit RGB and vice versa.
Pull Request: https://projects.blender.org/blender/blender/pulls/146612
The existing behaviour traces back from pre-2.5 era. It seems like a
general sanitization technique for any operator which may change the
view transformation.
While it still makes sense to switch to PERSPECTIVE mode when actively
calling a view operator, I don't think the same should be said by simply
switching the active scene.
This PR makes it so a temporary flag is set when switching to a scene that
has no camera. This flag is kept around until we deliberately change
perspective mode. We can eventually make it so the flag is reset again in
more occasions. But the patch is good as it is.
Ref: !146364
This deprecated function looks to have been long forgotten. Both import
and export are already available as `bpy.ops.wm.alembic_import` and
`bpy.ops.wm.alembic_export`.
Pull Request: https://projects.blender.org/blender/blender/pulls/146556
This patch reorders the inputs of some of the compositor nodes
accordingly to their importance. The importance is already quantified
internally using the domain priority of the input, so we needn't make
any subjective judgement and just order by the priority.
This breaks forward and backward compatibility if input indices were
used as opposed to input identifiers due to the different order.
Handling compatibility is not impossible, but is difficult, and it was
already ignored in many past node changes.
Pull Request: https://projects.blender.org/blender/blender/pulls/146311
Renames `'RADIAL_MENU'` to `'PIE_MENU'`, to more clearly describe what
it relates to. Internally this was already done with e425faf696.
This is a 5.0 compatibility breaking change. But I couldn't find any
usages of it in bundled scripts.
Pull Request: https://projects.blender.org/blender/blender/pulls/146651
With !142495, the minimum brush radius became 0.5px, so clamp to that
instead of 1px to allow drawing single pixels. Also change how drawing
with anti-aliasing disabled works to avoid 1 pixel brush strokes not
always appearing. Now when AA is disabled, snap the cursor to either
the corners or centers of the pixels, depending on if the diameter is even
or odd, respectively.
Fixes#71403
Pull Request: https://projects.blender.org/blender/blender/pulls/146384
Call translation function in: Menu socket tooltip and node description tooltip.
- Menu Socket Tooltip
- Node description tooltip
- If node description is empty, not add space before idname.
Pull Request: https://projects.blender.org/blender/blender/pulls/146126
Caused by caf11a2b9f
Above commit removed the assignment of "id" to the context (and instead
stored the "session_uid" in the button context). This is all good for
the fix it did, but... we are not getting the correct ID now in the
operator (instead, the id in context is the last item made active [by
selection] it seems).
Anyhow, to restore previous behavior, just bring back "id" to the
context (leaving the "session_uid" untouched), so we have the data to
work with in the operator.
NOTE: might be possible to retrieve the correct ID from the
"session_uid" as well -- havent looked into this much though since this
is ore tied to actual buttons it seems...
Pull Request: https://projects.blender.org/blender/blender/pulls/146599
Due to an incorrect assumption float buffers were converted to sRGB
values when uploading to an sRGBA8 texture. This is done when rendering
flames in workbench and resulted in to bright renders.
This PR removes sRGB encoding when uploading float values to sRGBA8 textures.
Fixes:
- render/openvdb/fire
- render/openvdb/principled_blackbody
- render/openvdb/smoke_fire
Pull Request: https://projects.blender.org/blender/blender/pulls/146636
Before the render graph was introduced we relied on a submission
resource tracker that allowed to resuse resources in the next frame.
With the introduction of the render graph we slowly migrated the
resource tracking to the render graph and eventually also moved the
whole discard pools to the submission runner.
There was still one part that 'used' the legacy resource tracker, but
actually didn't as it never reused resources. This PR removes the
resource tracker and migrate the push constants to use the render graph
to update a single buffer per shader.
Pull Request: https://projects.blender.org/blender/blender/pulls/146627
The RNA icon was rotating on the wrong direction.
Technically this is mostly a DNA helix, but even RNA can be a
double-helix sometimes. And both cases (RNA and DNA) are supposed to
have a right-hand orientation.
This PR also removes the RNA_ADD icon which is not used anywhere.
Based on suggestion by Brady Johnston.
Ref: !146600
This function would only call `IDP_FreePropertyContent` on the items it
is releasing from its buffer, when reducing the length of the array.
However, it needs to call `IDP_ClearProperty` instead, otherwise some
invalid 'dirty' data is kept in the released properties, e.g. the `len`
value for groups or arrays.
Not sure how this never bit us before, but the recent asserts added by
6cb2226f13 did trigger in that case, once the code was re-using these
released IDProps.
Pull Request: https://projects.blender.org/blender/blender/pulls/146326
Currently accessing these three separate boolean layers can
actually _create_ other attributes. Currently this can cause a
crash because it invalidates the pointers to other CustomData
layers. But it's also just logically wrong. Instead add functions
`vertex_selection_ensure()`, `edge_selection_ensure()` and
`pin_ensure()` to get the old behavior, and make the property
access just give empty collections if there is no boolean layer.
Part of #145877.
Pull Request: https://projects.blender.org/blender/blender/pulls/146611
Undo compression stored evaluated mesh positions instead of base mesh
positions when deform modifiers were active.
**Solution** : Modified `compress_fn` to compress `orig_position` data
when available (deform modifiers active), falling back to regular
position data otherwise.
Pull Request: https://projects.blender.org/blender/blender/pulls/146498