This was the case when using the operator outside of the modifiers panel.
Caused by rBeae36be372a6: Refactor: Unify vertex and sculpt colors into new.
In above commit, DT_layer_items shared both DT_TYPE_MPROPCOL_LOOP |
DT_TYPE_MLOOPCOL_LOOP in a single EnumPropertyItem value "Colors".
This is a bit unusual, but probably allowed.
As a consequence, checks for specific datatypes would fail when selecting
such EnumPropertyItem:
- DT_DATATYPE_IS_MULTILAYERS (uses ELEM to check distinct entries, would return false)
- BKE_object_data_transfer_dttype_to_srcdst_index (would return DT_MULTILAYER_INDEX_INVALID)
These places have now been corrected to take these "special" values into
account.
Another issue was that multiple EnumPropertyItems with the same value
could be created in dt_add_vcol_layers() if attributes of the same
domain, but different color types are in play (could lead to crashes)
and that has also been corrected.
Also: above commit did not give the choice of transfering color
attributes from the vertex domain (only face corner attributes could be
chosen), this has now been added. DT_layer_vert_items (used from the
modifier) already had this included so this was only an issue when using
the operator outside of the modifiers panel.
Since we now feature two domains, the single "VCOL" in the enum has been
split into "COLOR_VERTEX" and "COLOR_CORNER". This will break existing
scripts calling bpy.ops.object.datalayout_transfer and will be marked as
a breaking change in the release notes.