Related to #119999 and #122059.
In case the _source_ PropertyRNA was unset (i.e. its underlying
IDProperty storage did not exist), the copy operation would silently
fail.
In fact, the existing code handling IDProperties separately in
`RNA_property_copy` was pretty bad, since it would also bypass all the
RNA 'setting value' code (like custom setters, update handling).
Turns out, liboverride RNA apply code can already handle all of these
cases, so simply pass the raw 'unresolved' RNA property to it, and
remove all this special handling code from `RNA_property_copy`, solves
all the issues.
Reorder `Action::assign_id()` so that there is a clear "unassign any
previously-assigned binding" step first, and then a clear "assign the new
binding" step. Previously these were a bit too much intertwined.
Also `animrig::unassign_binding()` now simply calls into `Action::assign_id()`
instead of having somewhat overlapping responsibilities.
Finally the RNA setter for `AnimData.action_binding_handle` is changed
to always call `Action::assign_id()` for both assigning and unassigning
the handle. This ensures the API is properly used, instead of modifying
properties directly.
Pull Request: https://projects.blender.org/blender/blender/pulls/123184
Make `Binding.name` the 'RNA name property' of Action Bindings. This
ensures that the name property is unique (within the Action), and also
used for `action.bindings.keys()` and `action.bindings['BindingName']`.
The issue was that when applying the keyingsets
`Whole Character` and `LocRotScale & Custom Properties` the
enum property of a rigify rig was not keyed.
The reason it was not keyed was just because
it was not specified in the compatible types in the keying set.
The fix is to just add `bpy.types.EnumProperty` to the list.
Pull Request: https://projects.blender.org/blender/blender/pulls/122377
Remove the assertion in `animrig::assign_animation()` that the passed
Action is a layered Action. The code works equally well for legacy Actions.
No functional changes.
Extract
- Cycles denoiser enum.
- Extensions user preferences UI.
- Node operator poll message from new node function.
Improve
- Split "(Enabled|Disabled) on startup, overriding the preference."
into two messages.
Disambiguate
- "Add" when describing the action of adding something should use the
Operator context.
- "Dimensions", in noise textures.
- "Transform" as a noun, the matrix transform type of Geometry Nodes,
as opposed to the verb to move things in space.
- "Parent" as a noun or verb (the parent of an object, to parent an
object to another).
Some issues reported by Satoshi Yamasaki, deathblood, and Gabriel Gazzán.
Pull Request: https://projects.blender.org/blender/blender/pulls/122969
* Drop the repository - let's combine tags in a single list (per type)
to avoid duplications in the future.
* Give a more sensitive name for tthe property, to avoid tags.tags.
This PR adds drawing support to the render graph. It adds support for
draw, indirect draw, indexed draw and indexed indirect draw.
Draw commands can only be executed within a rendering scope. Data
transfer commands and dispatch commands cannot be executed within a
rendering scope. Blender can still send in commands in any order and
the render graph needs to find out the best order to minimize context
switches (rendering/begin/end). This is the responsibility of the
scheduler.
The scheduler will push data transfer and dispatch commands outside the
rendering scope:
- data transfer and dispatch commands at the beginning are done before
the rendering begin.
- data transfer and dispatch commands at the end are done after the
rendering end.
- data transfer and dispatches in between draw commands will be pushed
to the beginning if they are not yet being used.
- for all other data transfer and dispatch commands the rendering is
suspenderd and will be continued afterwards.
Within a rendering context it is not allowed to perform synchronization
commands. Any synchronization commands inside a rendering scope will be
performed before the rendering scope begins. Nodes are now organized
in groups to simplify the code around this area.
Pull Request: https://projects.blender.org/blender/blender/pulls/123168
Masks are not updated when edited when using the GPU compositor. That's
because the GPU compositor caches static resources and invalidates them
according to the recalculate flags that the depsgraph flushes to IDs.
The issue is that the flags are not flushed to the evaluated IDs of the
compositor depsgraph, but rather to some other evaluated versions of the
IDs.
To fix this, we make the compositor depsgraph persistent and store it in
the scene runtime. This allows us to reliably track changes to resources
used by the compositor and also reduces the overhead of depsgraph
creation in the compositor job.
Patch originally provided by Sergey.
Fixes#121188.
Pull Request: https://projects.blender.org/blender/blender/pulls/123085
This patch removes the Auto Render option from the compositor. This is
done for the following reason:
- The option didn't really work except in the case of transforming an
object. So it wasn't really reliable.
- It made little sense to use since the introduction of the Viewport
Compositor.
- It had a number of UX issues, including the fact that it can't be used
with animation playback, and the fact that rendering can get in the
way of the UI depending on the preferences for temporary editors.
Pull Request: https://projects.blender.org/blender/blender/pulls/123132
These utiltities aren't really specific to the scrape brush; they're used elsewhere
too. With simpler names it feels better to put them in the common utilities file
so they can be shared more easily.
Pull Request: https://projects.blender.org/blender/blender/pulls/123152
* Always define root directories in LIBDIR even when not needed,
to silence some warnings.
* Only show warnings about not finding libs when oneAPI is enabled.
* Prefix message for context.
Negative values for the strength should be clamped to 0.0f for this
brush to behave correctly. Without this, holding CTRL and doing a stroke
results in weird deformations.
Pull Request: https://projects.blender.org/blender/blender/pulls/123142
Part of #118145.
Since only multires was supported, this was simpler. The grid iteration has
more boilerplate code than I'd like, but that can be improved later on.
Use of the "proxy" system is unnecessary here (as it is in general) and it's
removed in this commit.
Pull Request: https://projects.blender.org/blender/blender/pulls/123101
Part of #118145.
Like the draw brush, the overall API is still in progress, and in particular
duplication will be reduced in the future. But this brush already reuses
quite a bit of the utilities from the draw brush. A new utility is added for
finding vertex neighbor indices as well.
Overall I found this about 8% faster than the smooth brush in main already.
Pull Request: https://projects.blender.org/blender/blender/pulls/122906