WIP: Fix #116458: Added decay factor for flattening brushes. #118699

Draft
Raul Fernandez Hernandez wants to merge 87 commits from farsthary/blender:Fix-#116458-Sculpt-Clay-strip-sculpts-on-back-face-when-front-face-only-is-turned-on into blender-v4.1-release

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
24 changed files with 59 additions and 54 deletions
Showing only changes of commit b2eb19e78c - Show all commits

View File

@ -287,21 +287,21 @@ int RNA_property_enum_bitflag_identifiers(
StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop);
bool RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value);
bool RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop);
bool RNA_property_editable(const PointerRNA *ptr, PropertyRNA *prop);
/**
* Version of #RNA_property_editable that tries to return additional info in \a r_info
* that can be exposed in UI.
*/
bool RNA_property_editable_info(PointerRNA *ptr, PropertyRNA *prop, const char **r_info);
bool RNA_property_editable_info(const PointerRNA *ptr, PropertyRNA *prop, const char **r_info);
/**
* Same as RNA_property_editable(), except this checks individual items in an array.
*/
bool RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, const int index);
bool RNA_property_editable_index(const PointerRNA *ptr, PropertyRNA *prop, const int index);
/**
* Without lib check, only checks the flag.
*/
bool RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop);
bool RNA_property_editable_flag(const PointerRNA *ptr, PropertyRNA *prop);
bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop);
bool RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop);
@ -309,7 +309,7 @@ bool RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop);
* \note Does not take into account editable status, this has to be checked separately
* (using #RNA_property_editable_flag() usually).
*/
bool RNA_property_overridable_get(PointerRNA *ptr, PropertyRNA *prop);
bool RNA_property_overridable_get(const PointerRNA *ptr, PropertyRNA *prop);
/**
* Should only be used for custom properties.
*/

View File

@ -300,7 +300,7 @@ void rna_ID_name_set(PointerRNA *ptr, const char *value)
}
}
static int rna_ID_name_editable(PointerRNA *ptr, const char **r_info)
static int rna_ID_name_editable(const PointerRNA *ptr, const char **r_info)
{
ID *id = (ID *)ptr->data;
@ -599,7 +599,7 @@ IDProperty **rna_ID_idprops(PointerRNA *ptr)
return &id->properties;
}
int rna_ID_is_runtime_editable(PointerRNA *ptr, const char **r_info)
int rna_ID_is_runtime_editable(const PointerRNA *ptr, const char **r_info)
{
ID *id = (ID *)ptr->data;
/* TODO: This should be abstracted in a BKE function or define, somewhat related to #88555. */

View File

@ -184,7 +184,9 @@ bool RNA_pointer_is_null(const PointerRNA *ptr)
return (ptr->data == nullptr) || (ptr->owner_id == nullptr) || (ptr->type == nullptr);
}
static void rna_pointer_inherit_id(StructRNA *type, PointerRNA *parent, PointerRNA *ptr)
static void rna_pointer_inherit_id(const StructRNA *type,
const PointerRNA *parent,
PointerRNA *ptr)
{
if (type && type->flag & STRUCT_ID) {
ptr->owner_id = static_cast<ID *>(ptr->data);
@ -203,7 +205,7 @@ PointerRNA RNA_blender_rna_pointer_create()
return ptr;
}
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
PointerRNA rna_pointer_inherit_refine(const PointerRNA *ptr, StructRNA *type, void *data)
{
if (data) {
PointerRNA result;
@ -2094,7 +2096,7 @@ int RNA_property_ui_icon(const PropertyRNA *prop)
return rna_ensure_property((PropertyRNA *)prop)->icon;
}
static bool rna_property_editable_do(PointerRNA *ptr,
static bool rna_property_editable_do(const PointerRNA *ptr,
PropertyRNA *prop_orig,
const int index,
const char **r_info)
@ -2155,17 +2157,17 @@ static bool rna_property_editable_do(PointerRNA *ptr,
return true;
}
bool RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_editable(const PointerRNA *ptr, PropertyRNA *prop)
{
return rna_property_editable_do(ptr, prop, -1, nullptr);
}
bool RNA_property_editable_info(PointerRNA *ptr, PropertyRNA *prop, const char **r_info)
bool RNA_property_editable_info(const PointerRNA *ptr, PropertyRNA *prop, const char **r_info)
{
return rna_property_editable_do(ptr, prop, -1, r_info);
}
bool RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_editable_flag(const PointerRNA *ptr, PropertyRNA *prop)
{
int flag;
const char *dummy_info;
@ -2175,7 +2177,7 @@ bool RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop)
return (flag & PROP_EDITABLE) != 0;
}
bool RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, const int index)
bool RNA_property_editable_index(const PointerRNA *ptr, PropertyRNA *prop, const int index)
{
BLI_assert(index >= 0);

View File

@ -120,7 +120,7 @@ int RNA_property_override_flag(PropertyRNA *prop)
return rna_ensure_property(prop)->flag_override;
}
bool RNA_property_overridable_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_overridable_get(const PointerRNA *ptr, PropertyRNA *prop)
{
if (prop->magic == RNA_MAGIC) {
/* Special handling for insertions of constraints or modifiers... */

View File

@ -119,7 +119,7 @@ static void rna_AnimData_dependency_update(Main *bmain, Scene *scene, PointerRNA
rna_AnimData_update(bmain, scene, ptr);
}
static int rna_AnimData_action_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_AnimData_action_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
AnimData *adt = (AnimData *)ptr->data;
return BKE_animdata_action_editable(adt) ? PROP_EDITABLE : PropertyFlag(0);
@ -381,7 +381,7 @@ static StructRNA *rna_ksPath_id_typef(PointerRNA *ptr)
return ID_code_to_RNA_type(ksp->idtype);
}
static int rna_ksPath_id_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_ksPath_id_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
KS_Path *ksp = (KS_Path *)ptr->data;
return (ksp->idtype) ? PROP_EDITABLE : PropertyFlag(0);
@ -478,7 +478,7 @@ static void rna_KeyingSet_name_set(PointerRNA *ptr, const char *value)
STRNCPY(ks->name, value);
}
static int rna_KeyingSet_active_ksPath_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_KeyingSet_active_ksPath_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
KeyingSet *ks = (KeyingSet *)ptr->data;

View File

@ -82,7 +82,7 @@ static bool rna_AssetMetaData_editable_from_owner_id(const ID *owner_id,
return false;
}
int rna_AssetMetaData_editable(PointerRNA *ptr, const char **r_info)
int rna_AssetMetaData_editable(const PointerRNA *ptr, const char **r_info)
{
AssetMetaData *asset_data = static_cast<AssetMetaData *>(ptr->data);
@ -99,7 +99,7 @@ static std::optional<std::string> rna_AssetTag_path(const PointerRNA *ptr)
return fmt::format("asset_data.tags[\"{}\"]", asset_tag_name_esc);
}
static int rna_AssetTag_editable(PointerRNA *ptr, const char **r_info)
static int rna_AssetTag_editable(const PointerRNA *ptr, const char **r_info)
{
AssetTag *asset_tag = static_cast<AssetTag *>(ptr->data);
ID *owner_id = ptr->owner_id;

View File

@ -224,7 +224,7 @@ static void rna_Attribute_name_set(PointerRNA *ptr, const char *value)
BKE_id_attribute_rename(ptr->owner_id, layer->name, value, nullptr);
}
static int rna_Attribute_name_editable(PointerRNA *ptr, const char **r_info)
static int rna_Attribute_name_editable(const PointerRNA *ptr, const char **r_info)
{
CustomDataLayer *layer = static_cast<CustomDataLayer *>(ptr->data);
if (BKE_id_attribute_required(ptr->owner_id, layer->name)) {

View File

@ -467,7 +467,7 @@ static std::optional<std::string> rna_ClothCollisionSettings_path(const PointerR
return std::nullopt;
}
static int rna_ClothSettings_internal_editable(PointerRNA *ptr, const char **r_info)
static int rna_ClothSettings_internal_editable(const PointerRNA *ptr, const char **r_info)
{
ClothSimSettings *sim = (ClothSimSettings *)ptr->data;

View File

@ -271,7 +271,7 @@ static void rna_Curve_texspace_set(Main * /*bmain*/, Scene * /*scene*/, PointerR
}
}
static int rna_Curve_texspace_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_Curve_texspace_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
Curve *cu = static_cast<Curve *>(ptr->data);
return (cu->texspace_flag & CU_TEXSPACE_FLAG_AUTO) ? PropertyFlag(0) : PROP_EDITABLE;

View File

@ -368,13 +368,13 @@ static StructRNA *rna_DriverTarget_id_typef(PointerRNA *ptr)
return ID_code_to_RNA_type(dtar->idtype);
}
static int rna_DriverTarget_id_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_DriverTarget_id_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
DriverTarget *dtar = (DriverTarget *)ptr->data;
return (dtar->idtype) ? PROP_EDITABLE : PropertyFlag(0);
}
static int rna_DriverTarget_id_type_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_DriverTarget_id_type_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
DriverTarget *dtar = (DriverTarget *)ptr->data;

View File

@ -323,7 +323,7 @@ static std::optional<std::string> rna_GPencilLayer_path(const PointerRNA *ptr)
return fmt::format("layers[\"{}\"]", name_esc);
}
static int rna_GPencilLayer_active_frame_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_GPencilLayer_active_frame_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
bGPDlayer *gpl = (bGPDlayer *)ptr->data;

View File

@ -259,7 +259,7 @@ void rna_def_mtex_common(BlenderRNA *brna,
void rna_def_texpaint_slots(BlenderRNA *brna, StructRNA *srna);
void rna_def_view_layer_common(BlenderRNA *brna, StructRNA *srna, bool scene);
int rna_AssetMetaData_editable(PointerRNA *ptr, const char **r_info);
int rna_AssetMetaData_editable(const PointerRNA *ptr, const char **r_info);
/**
* \note the UI text and updating has to be set by the caller.
*/
@ -596,7 +596,7 @@ PropertyDefRNA *rna_find_struct_property_def(StructRNA *srna, PropertyRNA *prop)
/* Pointer Handling */
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data);
PointerRNA rna_pointer_inherit_refine(const PointerRNA *ptr, StructRNA *type, void *data);
/* Functions */

View File

@ -48,8 +48,8 @@ using UpdateFunc = void (*)(Main *bmain, Scene *active_scene, PointerRNA *ptr);
using ContextPropUpdateFunc = void (*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop);
using ContextUpdateFunc = void (*)(bContext *C, PointerRNA *ptr);
using EditableFunc = int (*)(PointerRNA *ptr, const char **r_info);
using ItemEditableFunc = int (*)(PointerRNA *ptr, int index);
using EditableFunc = int (*)(const PointerRNA *ptr, const char **r_info);
using ItemEditableFunc = int (*)(const PointerRNA *ptr, int index);
using IDPropertiesFunc = IDProperty **(*)(PointerRNA *ptr);
using StructRefineFunc = StructRNA *(*)(PointerRNA *ptr);
using StructPathFunc = std::optional<std::string> (*)(const PointerRNA *ptr);

View File

@ -176,7 +176,7 @@ static void rna_Lattice_use_outside_set(PointerRNA *ptr, bool value)
}
}
static int rna_Lattice_size_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_Lattice_size_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
Lattice *lt = (Lattice *)ptr->data;

View File

@ -746,7 +746,7 @@ static void rna_MeshLoopColor_color_set(PointerRNA *ptr, const float *values)
mlcol->a = round_fl_to_uchar_clamp(values[3] * 255.0f);
}
static int rna_Mesh_texspace_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_Mesh_texspace_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
Mesh *mesh = (Mesh *)ptr->data;
return (mesh->texspace_flag & ME_TEXSPACE_FLAG_AUTO) ? PropertyFlag(0) : PROP_EDITABLE;

View File

@ -39,7 +39,7 @@
# include "WM_api.hh"
# include "WM_types.hh"
static int rna_Meta_texspace_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_Meta_texspace_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
MetaBall *mb = (MetaBall *)ptr->data;
return (mb->texspace_flag & MB_TEXSPACE_FLAG_AUTO) ? 0 : int(PROP_EDITABLE);

View File

@ -429,7 +429,7 @@ static void rna_NlaStrip_use_auto_blend_set(PointerRNA *ptr, bool value)
}
}
static int rna_NlaStrip_action_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_NlaStrip_action_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
NlaStrip *strip = (NlaStrip *)ptr->data;

View File

@ -1153,7 +1153,7 @@ static void rna_Object_active_material_set(PointerRNA *ptr,
}
}
static int rna_Object_active_material_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_Object_active_material_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
Object *ob = reinterpret_cast<Object *>(ptr->owner_id);
bool is_editable;
@ -1246,7 +1246,7 @@ static void rna_Object_dimensions_set(PointerRNA *ptr, const float *value)
BKE_object_dimensions_set(ob, value, 0);
}
static int rna_Object_location_editable(PointerRNA *ptr, int index)
static int rna_Object_location_editable(const PointerRNA *ptr, int index)
{
Object *ob = static_cast<Object *>(ptr->data);
@ -1265,7 +1265,7 @@ static int rna_Object_location_editable(PointerRNA *ptr, int index)
}
}
static int rna_Object_scale_editable(PointerRNA *ptr, int index)
static int rna_Object_scale_editable(const PointerRNA *ptr, int index)
{
Object *ob = static_cast<Object *>(ptr->data);
@ -1284,7 +1284,7 @@ static int rna_Object_scale_editable(PointerRNA *ptr, int index)
}
}
static int rna_Object_rotation_euler_editable(PointerRNA *ptr, int index)
static int rna_Object_rotation_euler_editable(const PointerRNA *ptr, int index)
{
Object *ob = static_cast<Object *>(ptr->data);
@ -1303,7 +1303,7 @@ static int rna_Object_rotation_euler_editable(PointerRNA *ptr, int index)
}
}
static int rna_Object_rotation_4d_editable(PointerRNA *ptr, int index)
static int rna_Object_rotation_4d_editable(const PointerRNA *ptr, int index)
{
Object *ob = static_cast<Object *>(ptr->data);
@ -1338,7 +1338,7 @@ static int rna_MaterialSlot_index_get(PointerRNA *ptr)
return rna_MaterialSlot_index(ptr);
}
static int rna_MaterialSlot_material_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_MaterialSlot_material_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
Object *ob = reinterpret_cast<Object *>(ptr->owner_id);
const int index = rna_MaterialSlot_index(ptr);
@ -2242,7 +2242,7 @@ static void rna_Object_mesh_symmetry_z_set(PointerRNA *ptr, bool value)
mesh_symmetry_set_common(ptr, value, ME_SYMMETRY_Z);
}
static int rna_Object_mesh_symmetry_yz_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_Object_mesh_symmetry_yz_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
const Object *ob = reinterpret_cast<Object *>(ptr->owner_id);
if (ob->type != OB_MESH) {

View File

@ -499,7 +499,7 @@ bool rna_PoseChannel_constraints_override_apply(Main *bmain,
return true;
}
static int rna_PoseChannel_proxy_editable(PointerRNA * /*ptr*/, const char ** /*r_info*/)
static int rna_PoseChannel_proxy_editable(const PointerRNA * /*ptr*/, const char ** /*r_info*/)
{
# if 0
Object *ob = (Object *)ptr->owner_id;
@ -515,7 +515,7 @@ static int rna_PoseChannel_proxy_editable(PointerRNA * /*ptr*/, const char ** /*
return PROP_EDITABLE;
}
static int rna_PoseChannel_location_editable(PointerRNA *ptr, int index)
static int rna_PoseChannel_location_editable(const PointerRNA *ptr, int index)
{
bPoseChannel *pchan = (bPoseChannel *)ptr->data;
@ -534,7 +534,7 @@ static int rna_PoseChannel_location_editable(PointerRNA *ptr, int index)
}
}
static int rna_PoseChannel_scale_editable(PointerRNA *ptr, int index)
static int rna_PoseChannel_scale_editable(const PointerRNA *ptr, int index)
{
bPoseChannel *pchan = (bPoseChannel *)ptr->data;
@ -553,7 +553,7 @@ static int rna_PoseChannel_scale_editable(PointerRNA *ptr, int index)
}
}
static int rna_PoseChannel_rotation_euler_editable(PointerRNA *ptr, int index)
static int rna_PoseChannel_rotation_euler_editable(const PointerRNA *ptr, int index)
{
bPoseChannel *pchan = (bPoseChannel *)ptr->data;
@ -572,7 +572,7 @@ static int rna_PoseChannel_rotation_euler_editable(PointerRNA *ptr, int index)
}
}
static int rna_PoseChannel_rotation_4d_editable(PointerRNA *ptr, int index)
static int rna_PoseChannel_rotation_4d_editable(const PointerRNA *ptr, int index)
{
bPoseChannel *pchan = (bPoseChannel *)ptr->data;

View File

@ -299,7 +299,8 @@ static PointerRNA rna_Region_data_get(PointerRNA *ptr)
return PointerRNA_NULL;
}
static int rna_region_active_panel_category_editable_get(PointerRNA *ptr, const char **r_info)
static int rna_region_active_panel_category_editable_get(const PointerRNA *ptr,
const char **r_info)
{
ARegion *region = static_cast<ARegion *>(ptr->data);
if (BLI_listbase_is_empty(&region->panels_category)) {

View File

@ -573,7 +573,7 @@ static int rna_Sequence_frame_length_get(PointerRNA *ptr)
return SEQ_time_right_handle_frame_get(scene, seq) - SEQ_time_left_handle_frame_get(scene, seq);
}
static int rna_Sequence_frame_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_Sequence_frame_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
Sequence *seq = (Sequence *)ptr->data;
/* Effect sequences' start frame and length must be readonly! */

View File

@ -2757,7 +2757,7 @@ static std::optional<std::string> rna_FileSelectParams_path(const PointerRNA * /
return "params";
}
int rna_FileSelectParams_filename_editable(PointerRNA *ptr, const char **r_info)
int rna_FileSelectParams_filename_editable(const PointerRNA *ptr, const char **r_info)
{
FileSelectParams *params = static_cast<FileSelectParams *>(ptr->data);
@ -2837,7 +2837,7 @@ static PointerRNA rna_FileAssetSelectParams_filter_id_get(PointerRNA *ptr)
return rna_pointer_inherit_refine(ptr, &RNA_FileAssetSelectIDFilter, ptr->data);
}
static PointerRNA rna_FileBrowser_FileSelectEntry_asset_data_get(PointerRNA *ptr)
static PointerRNA rna_FileBrowser_FileSelectEntry_asset_data_get(const PointerRNA *ptr)
{
const FileDirEntry *entry = static_cast<const FileDirEntry *>(ptr->data);
@ -2860,7 +2860,8 @@ static PointerRNA rna_FileBrowser_FileSelectEntry_asset_data_get(PointerRNA *ptr
return rna_pointer_inherit_refine(ptr, &RNA_AssetMetaData, asset_data);
}
static int rna_FileBrowser_FileSelectEntry_name_editable(PointerRNA *ptr, const char **r_info)
static int rna_FileBrowser_FileSelectEntry_name_editable(const PointerRNA *ptr,
const char **r_info)
{
const FileDirEntry *entry = static_cast<const FileDirEntry *>(ptr->data);
@ -2977,7 +2978,8 @@ static void rna_FileBrowser_FSMenuEntry_name_set(PointerRNA *ptr, const char *va
ED_fsmenu_entry_set_name(fsm, value);
}
static int rna_FileBrowser_FSMenuEntry_name_get_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_FileBrowser_FSMenuEntry_name_get_editable(const PointerRNA *ptr,
const char ** /*r_info*/)
{
FSMenuEntry *fsm = static_cast<FSMenuEntry *>(ptr->data);

View File

@ -1268,7 +1268,7 @@ static void rna_UserDef_studiolight_light_ambient_get(PointerRNA *ptr, float *va
copy_v3_v3(values, sl->light_ambient);
}
int rna_show_statusbar_vram_editable(PointerRNA * /*ptr*/, const char ** /*r_info*/)
int rna_show_statusbar_vram_editable(const PointerRNA * /*ptr*/, const char ** /*r_info*/)
{
return GPU_mem_stats_supported() ? PROP_EDITABLE : PropertyFlag(0);
}

View File

@ -26,7 +26,7 @@
# include "WM_api.hh"
/* Matching function in rna_ID.cc */
static int rna_VectorFont_filepath_editable(PointerRNA *ptr, const char ** /*r_info*/)
static int rna_VectorFont_filepath_editable(const PointerRNA *ptr, const char ** /*r_info*/)
{
VFont *vfont = (VFont *)ptr->owner_id;
if (BKE_vfont_is_builtin(vfont)) {