The implementation is pretty much the same as for Object sockets.
The socket color is the one that is used for collections in the outliner.
Part of D9739.
The previous `BKE_appdir_folder_default()` was confusing, it would return the
home directory on Linux and macOS, but the Documents directory on Windows.
Plus, for the Asset Browser, we want to use the Documents directory for the
default asset library on all platforms.
This attempts to clean up the API to avoid confusion, while adding the newly
needed functionality.
* `BKE_appdir_folder_default()` should behave as before, but the implementation
changed:
** Removes apparently incorrect usage of `XDG_DOCUMENTS_DIR` on Unix systems -
this seems to be a config file variable, not an environment variable. Always
use `$HOME` instead, which this ended up using anyway.
** On Windows it doesn't attempt to use `%HOME%` anymore and gets the Documents
directory directly.
* Add `BKE_appdir_folder_home()` to gives the top-level user directory on all
platforms.
* Add `BKE_appdir_folder_documents()` to always get the user documents
directory on all platforms.
There should be no user noticable behavior change.
Differential Revision: https://developer.blender.org/D9800
Reviewed by: Brecht Van Lommel
Was failing for weightpaint and vertexpaint.
Selection flags were actually changed, but the update in the viewport
wasnt immediate, leading to confusion when the update happened later
(e.g. when using the weight gradient tool as done in the report).
We need to tag ID_RECALC_SELECT and send ND_SELECT notifier here. This
could be done explicitly, but there is also existing functionality
available that does this.
Note: the way updates happen for paintfaces vs. paintverts looks a bit
inconsistent (so this could be part of a later cleanup commit)
Maniphest Tasks: T82881
Differential Revision: https://developer.blender.org/D9631
This node can be used to mix two attributes in various ways.
The blend modes are the same as in the MixRGB shader node.
Differential Revision: https://developer.blender.org/D9737
Ref T82374.
When compiling on Windows, the following warnings occur:
```[3468/4560] Building C object source\blender\draw\CMakeFiles\bf_draw.dir\engines\eevee\eevee_cryptomatte.c.obj
C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4047: 'function': 'bool' differs in levels of indirection from 'void *'
C:\blender-git\blender\source\blender\draw\engines\eevee\eevee_cryptomatte.c(306): warning C4024: 'eevee_cryptomatte_shading_group_create': different types for formal and actual parameter 5```
As @Severin pointed out [here](https://developer.blender.org/rB76a0b322e4d3244e59a154c8255b84a4fbc33117#288960), this is due to the last two arguments being flipped. This diff corrects the order.
Reviewed By: Severin, fclem
Differential Revision: https://developer.blender.org/D9809
duplicated particle system
When particle settings are duplicated along with the particle system,
this means a change in relations, was missing
'DEG_relations_tag_update'.
Maniphest Tasks: T83640
Differential Revision: https://developer.blender.org/D9823
The parameter type was incorrectly changed in rB6be56c13e96048cbc494ba5473a8deaf2cf5a6f8 by me.
This can be any id and does not have to be a node tree.
I thought I had reasoned that the add_patch would only happen
when the patch was not already in a cell, but I missed reasoning
about merged cells. So switched to a set 'add' instead of 'add_new'.
This commit adds a node that fills every element of an attribute
with the same value. Currently it supports float, vector, and color
attributes. An immediate use case is for "billboard" scattering.
Currently people are using the same input to a Random Attribute node's
min and max input to fill every element of a vector with the same value,
which is an unintuitive way to accomplish the same thing.
Differential Revision: https://developer.blender.org/D9790
Since the initial merge of the geometry nodes project, the modifyPointCloud
function already was already modifying a geometry set. The function wasn't
renamed back then, because then the merge would have touched many
more files.
Ref T83357.
Caused by rB4212b6528af.
outlineColor is computed by the vertex shader, so not a uniform.
So outlineColor was undefined.
note: it was still possible to run into the situation that a selected UV
is drawn ontop of a selected pinned UV [you had to disable sticky
selection for this], now also make sure selected-pinned are drawn
topmost, then selected, then unselected UVs.
Maniphest Tasks: T83361
Differential Revision: https://developer.blender.org/D9786
Previously, the transformation of recursive instances did not work as
on would expect. Second-level instances would detach from first-level
instances when the object was moved.
This was returning an empty allocated string, however almost
all callers checked if the return value was NULL before freeing,
making for misunderstandings on the intended use of this function.
BCAnimationSampler::initialize_curves for example detected the
f-curves animation type to 'bone' based on a non-NULL return value
which never failed.
Also fixes two leaks where the the result of BLI_str_quoted_substrN
wasn't freed.
BLI_str_quoted_substrN didn't unescape the resulting string,
yet all callers were using this with animation paths which are
created using BLI_str_escape().
- Fix BLI_str_quoted_substrN use with escaped strings by calling
BLI_str_unescape().
Note that it's possible we want an a version of this function that
keeps escape characters. This could be added if it's required.
- Fix end quote detection using BLI_str_escape_find_quote
checking for `\"` isn't reliable since an even number of back-slashes
before a quote means it's not escaped.
This adds deformation types to snake hook and the elastic deformation
type. This mode deforms the mesh using a kelvinlet instead of applying
the displacement directly inside the brush radius, which is great for
stylized shapes sketching.
Changes in rake rotation when using elastic are too strong when set
to 1, so I'll add a nicer way to support rake rotations with smoother
transitions in the future.
Reviewed By: sergey, JulienKaspar
Differential Revision: https://developer.blender.org/D9560
relation immediately
Texture and ParticleSettings have a DEG relation, but
`DEG_relations_tag_update` was not called when the texture changed.
This lead to no updates when e.g. texture size changes, relation only
went into full effect after save/reload or adding/removing keyframes.
Two places were additional relation tagging is needed:
- ParticleSettings `active_texture` changes
- ParticleSettingsTextureSlot (basically any TextureSlots') texture
changes
Maniphest Tasks: T82242
Differential Revision: https://developer.blender.org/D9393
The change to match socket color and category was already done, but it was missing
versioning code to update the theme on load.
Fixes T83500 (already closed as invalid, but this would solve the non-matching colors)
Reviewed by Hans Goudey (HooglyBoogly)
This is a non-functional change. The functionality introduced in this commit
is not used in master yet. It is used by nodes that are being developed in
other branches though.