RNA: support compiling rna files as C++ code #108290

Merged
Jacques Lucke merged 29 commits from JacquesLucke/blender:rna-cpp into main 2023-06-09 11:45:46 +02:00
8 changed files with 227 additions and 160 deletions

View File

@ -310,6 +310,7 @@ typedef enum PropertyFlag {
**/
PROP_PATH_OUTPUT = (1 << 2),
} PropertyFlag;
ENUM_OPERATORS(PropertyFlag, PROP_NO_DEG_UPDATE)
/**
* Flags related to comparing and overriding RNA properties.
@ -354,6 +355,7 @@ typedef enum PropertyOverrideFlag {
*/
PROPOVERRIDE_NO_PROP_NAME = (1 << 11),
} PropertyOverrideFlag;
ENUM_OPERATORS(PropertyOverrideFlag, PROPOVERRIDE_NO_PROP_NAME);
/**
* Function parameters flags.

View File

@ -41,16 +41,16 @@ set(DEFSRC
rna_gpencil_legacy_modifier.c
rna_image.c
rna_key.c
rna_lattice.c
rna_lattice.cc
rna_layer.c
rna_light.c
rna_lightprobe.c
rna_linestyle.c
rna_main.c
rna_mask.c
rna_mask.cc
rna_material.c
rna_mesh.c
rna_meta.c
rna_meta.cc
rna_modifier.c
rna_movieclip.c
rna_nla.c
@ -61,7 +61,7 @@ set(DEFSRC
rna_palette.c
rna_particle.c
rna_pointcloud.c
rna_pose.c
rna_pose.cc
rna_render.c
rna_rigidbody.c
rna_rna.c
@ -106,7 +106,7 @@ set(APISRC
rna_curve_api.c
rna_fcurve_api.c
rna_image_api.c
rna_lattice_api.c
rna_lattice_api.cc
rna_main_api.c
rna_material_api.c
rna_mesh_api.c
@ -137,21 +137,42 @@ set_source_files_properties(${GENSRC} PROPERTIES GENERATED TRUE)
# CFLAGS for Generated Files
#
# less strict flags for generated source
set(GENSRC_FLAGS)
set(GENSRC_CFLAGS)
set(GENSRC_CXXFLAGS)
if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
set(GENSRC_CFLAGS "-Wno-missing-prototypes")
set(GENSRC_CXXFLAGS "-Wno-missing-declarations")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
string(APPEND GENSRC_CFLAGS " -Wno-missing-variable-declarations")
string(APPEND GENSRC_FLAGS " -Wno-missing-variable-declarations")
elseif(MSVC)
# Restore warn C4100 (unreferenced formal parameter) back to w4
remove_cc_flag(/w34100)
endif()
if(GENSRC_CFLAGS)
set_source_files_properties(${GENSRC} PROPERTIES COMPILE_FLAGS "${GENSRC_CFLAGS}")
set(GENSRC_C ${GENSRC})
list(FILTER GENSRC_C INCLUDE REGEX ".*\.c$")
set(GENSRC_CXX ${GENSRC})
list(FILTER GENSRC_CXX INCLUDE REGEX ".*\.cc$")
if(GENSRC_FLAGS)
set_source_files_properties(${GENSRC} PROPERTIES COMPILE_FLAGS "${GENSRC_FLAGS}")
endif()
if(GENSRC_CFLAGS)
set_source_files_properties(${GENSRC_C} PROPERTIES COMPILE_FLAGS "${GENSRC_CFLAGS}")
endif()
if(GENSRC_CXXFLAGS)
set_source_files_properties(${GENSRC_CXX} PROPERTIES COMPILE_FLAGS "${GENSRC_CXXFLAGS}")
endif()
unset(GENSRC_C)
unset(GENSRC_CXX)
unset(GENSRC_FLAGS)
unset(GENSRC_CFLAGS)
unset(GENSRC_CXXFLAGS)
# NOTE: Disable clang-tidy because generated files are stored outside of the source,

View File

@ -743,7 +743,7 @@ static char *rna_def_property_get_func(
case PROP_STRING: {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
UNUSED_VARS_NDEBUG(sprop);
fprintf(f, "void %s(PointerRNA *ptr, char *value)\n", func);
fprintf(f, "RNA_EXTERN_C void %s(PointerRNA *ptr, char *value)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
fprintf(f, " %s(ptr, value);\n", manualfunc);
@ -781,7 +781,7 @@ static char *rna_def_property_get_func(
break;
}
case PROP_POINTER: {
fprintf(f, "PointerRNA %s(PointerRNA *ptr)\n", func);
fprintf(f, "RNA_EXTERN_C PointerRNA %s(PointerRNA *ptr)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
fprintf(f, " return %s(ptr);\n", manualfunc);
@ -831,11 +831,14 @@ static char *rna_def_property_get_func(
default:
if (prop->arraydimension) {
if (prop->flag & PROP_DYNAMIC) {
fprintf(f, "void %s(PointerRNA *ptr, %s values[])\n", func, rna_type_type(prop));
fprintf(f,
"RNA_EXTERN_C void %s(PointerRNA *ptr, %s values[])\n",
func,
rna_type_type(prop));
}
else {
fprintf(f,
"void %s(PointerRNA *ptr, %s values[%u])\n",
"RNA_EXTERN_C void %s(PointerRNA *ptr, %s values[%u])\n",
func,
rna_type_type(prop),
prop->totarraylength);
@ -931,7 +934,7 @@ static char *rna_def_property_get_func(
fprintf(f, "}\n\n");
}
else {
fprintf(f, "%s %s(PointerRNA *ptr)\n", rna_type_type(prop), func);
fprintf(f, "RNA_EXTERN_C %s %s(PointerRNA *ptr)\n", rna_type_type(prop), func);
fprintf(f, "{\n");
if (manualfunc) {
@ -1022,17 +1025,25 @@ static void rna_clamp_value_range_check(FILE *f,
{
if (prop->type == PROP_INT) {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
fprintf(f, " {\n");
fprintf(f, "#ifdef __cplusplus\n");
fprintf(f, " using T = decltype(%s%s);\n", dnaname_prefix, dnaname);
fprintf(f, " static_assert(std::numeric_limits<T>::max() >= %d);\n", iprop->hardmax);
fprintf(f, " static_assert(std::numeric_limits<T>::min() <= %d);\n", iprop->hardmin);
fprintf(f, "#else\n");
fprintf(f,
" { BLI_STATIC_ASSERT("
" BLI_STATIC_ASSERT("
"(TYPEOF_MAX(%s%s) >= %d) && "
"(TYPEOF_MIN(%s%s) <= %d), "
"\"invalid limits\"); }\n",
"\"invalid limits\");\n",
dnaname_prefix,
dnaname,
iprop->hardmax,
dnaname_prefix,
dnaname,
iprop->hardmin);
fprintf(f, "#endif\n");
fprintf(f, " }\n");
}
}
#endif /* USE_RNA_RANGE_CHECK */
@ -1050,7 +1061,7 @@ static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array)
fprintf(f, "CLAMPIS(value, ");
}
if (iprop->range) {
fprintf(f, "prop_clamp_min, prop_clamp_max);");
fprintf(f, "prop_clamp_min, prop_clamp_max);\n");
}
else {
rna_int_print(f, iprop->hardmin);
@ -1072,7 +1083,7 @@ static void rna_clamp_value(FILE *f, PropertyRNA *prop, int array)
fprintf(f, "CLAMPIS(value, ");
}
if (fprop->range) {
fprintf(f, "prop_clamp_min, prop_clamp_max);");
fprintf(f, "prop_clamp_min, prop_clamp_max);\n");
}
else {
rna_float_print(f, fprop->hardmin);
@ -1110,7 +1121,7 @@ static char *rna_def_property_search_func(FILE *f,
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "search");
fprintf(f,
"void %s("
"RNA_EXTERN_C void %s("
"const bContext *C, "
"PointerRNA *ptr, "
"PropertyRNA *prop, "
@ -1151,7 +1162,7 @@ static char *rna_def_property_set_func(
switch (prop->type) {
case PROP_STRING: {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
fprintf(f, "void %s(PointerRNA *ptr, const char *value)\n", func);
fprintf(f, "RNA_EXTERN_C void %s(PointerRNA *ptr, const char *value)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
fprintf(f, " %s(ptr, value);\n", manualfunc);
@ -1166,7 +1177,8 @@ static char *rna_def_property_set_func(
f, " if (data->%s != NULL) { MEM_freeN(data->%s); }\n", dp->dnaname, dp->dnaname);
fprintf(f, " const int length = strlen(value);\n");
fprintf(f, " if (length > 0) {\n");
fprintf(f, " data->%s = MEM_mallocN(length + 1, __func__);\n", dp->dnaname);
fprintf(
f, " data->%s = (char *)MEM_mallocN(length + 1, __func__);\n", dp->dnaname);
fprintf(f, " memcpy(data->%s, value, length + 1);\n", dp->dnaname);
fprintf(f, " } else { data->%s = NULL; }\n", dp->dnaname);
}
@ -1196,7 +1208,10 @@ static char *rna_def_property_set_func(
break;
}
case PROP_POINTER: {
fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value, struct ReportList *reports)\n", func);
fprintf(
f,
"RNA_EXTERN_C void %s(PointerRNA *ptr, PointerRNA value, struct ReportList *reports)\n",
func);
fprintf(f, "{\n");
if (manualfunc) {
fprintf(f, " %s(ptr, value, reports);\n", manualfunc);
@ -1229,7 +1244,7 @@ static char *rna_def_property_set_func(
}
}
fprintf(f, " data->%s = value.data;\n", dp->dnaname);
fprintf(f, " *(void **)&data->%s = value.data;\n", dp->dnaname);
}
fprintf(f, "}\n\n");
break;
@ -1237,11 +1252,14 @@ static char *rna_def_property_set_func(
default:
if (prop->arraydimension) {
if (prop->flag & PROP_DYNAMIC) {
fprintf(f, "void %s(PointerRNA *ptr, const %s values[])\n", func, rna_type_type(prop));
fprintf(f,
"RNA_EXTERN_C void %s(PointerRNA *ptr, const %s values[])\n",
func,
rna_type_type(prop));
}
else {
fprintf(f,
"void %s(PointerRNA *ptr, const %s values[%u])\n",
"RNA_EXTERN_C void %s(PointerRNA *ptr, const %s values[%u])\n",
func,
rna_type_type(prop),
prop->totarraylength);
@ -1353,7 +1371,7 @@ static char *rna_def_property_set_func(
fprintf(f, "}\n\n");
}
else {
fprintf(f, "void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop));
fprintf(f, "RNA_EXTERN_C void %s(PointerRNA *ptr, %s value)\n", func, rna_type_type(prop));
fprintf(f, "{\n");
if (manualfunc) {
@ -1439,7 +1457,7 @@ static char *rna_def_property_length_func(
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length");
fprintf(f, "int %s(PointerRNA *ptr)\n", func);
fprintf(f, "RNA_EXTERN_C int %s(PointerRNA *ptr)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
fprintf(f, " return %s(ptr);\n", manualfunc);
@ -1472,7 +1490,7 @@ static char *rna_def_property_length_func(
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "length");
fprintf(f, "int %s(PointerRNA *ptr)\n", func);
fprintf(f, "RNA_EXTERN_C int %s(PointerRNA *ptr)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
fprintf(f, " return %s(ptr);\n", manualfunc);
@ -1521,7 +1539,7 @@ static char *rna_def_property_begin_func(
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "begin");
fprintf(f, "void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func);
fprintf(f, "RNA_EXTERN_C void %s(CollectionPropertyIterator *iter, PointerRNA *ptr)\n", func);
fprintf(f, "{\n");
if (!manualfunc) {
@ -1610,7 +1628,7 @@ static char *rna_def_property_lookup_int_func(FILE *f,
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "lookup_int");
fprintf(f, "int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func);
fprintf(f, "RNA_EXTERN_C int %s(PointerRNA *ptr, int index, PointerRNA *r_ptr)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
@ -1754,7 +1772,21 @@ static char *rna_def_property_lookup_string_func(FILE *f,
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "lookup_string");
fprintf(f, "int %s(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)\n", func);
if (!manualfunc) {
/* XXX extern declaration could be avoid by including RNA_blender.h, but this has lots of
* unknown DNA types in functions, leading to conflicting function signatures.
*/
fprintf(f,
"RNA_EXTERN_C int %s_%s_length(PointerRNA *);\n",
item_name_base->identifier,
rna_safe_id(item_name_prop->identifier));
fprintf(f,
"RNA_EXTERN_C void %s_%s_get(PointerRNA *, char *);\n\n",
item_name_base->identifier,
rna_safe_id(item_name_prop->identifier));
}
fprintf(f, "RNA_EXTERN_C int %s(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
@ -1763,18 +1795,6 @@ static char *rna_def_property_lookup_string_func(FILE *f,
return func;
}
/* XXX extern declaration could be avoid by including RNA_blender.h, but this has lots of unknown
* DNA types in functions, leading to conflicting function signatures.
*/
fprintf(f,
" extern int %s_%s_length(PointerRNA *);\n",
item_name_base->identifier,
rna_safe_id(item_name_prop->identifier));
fprintf(f,
" extern void %s_%s_get(PointerRNA *, char *);\n\n",
item_name_base->identifier,
rna_safe_id(item_name_prop->identifier));
fprintf(f, " bool found = false;\n");
fprintf(f, " CollectionPropertyIterator iter;\n");
fprintf(f, " char namebuf[%d];\n", namebuflen);
@ -1844,7 +1864,7 @@ static char *rna_def_property_next_func(FILE *f,
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "next");
fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func);
fprintf(f, "RNA_EXTERN_C void %s(CollectionPropertyIterator *iter)\n", func);
fprintf(f, "{\n");
fprintf(f, " %s(iter);\n", manualfunc);
@ -1873,7 +1893,7 @@ static char *rna_def_property_end_func(FILE *f,
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "end");
fprintf(f, "void %s(CollectionPropertyIterator *iter)\n", func);
fprintf(f, "RNA_EXTERN_C void %s(CollectionPropertyIterator *iter)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
fprintf(f, " %s(iter);\n", manualfunc);
@ -2127,7 +2147,7 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
fprintf(f, "bool %sget(PointerRNA *ptr);\n", func);
fprintf(f, "void %sset(PointerRNA *ptr, bool value);\n", func);
}
else if (prop->arraydimension && prop->totarraylength) {
else if ((prop->flag & PROP_DYNAMIC) == 0 && prop->arraydimension && prop->totarraylength) {
fprintf(f, "void %sget(PointerRNA *ptr, bool values[%u]);\n", func, prop->totarraylength);
fprintf(f,
"void %sset(PointerRNA *ptr, const bool values[%u]);\n",
@ -2145,7 +2165,7 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
fprintf(f, "int %sget(PointerRNA *ptr);\n", func);
fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func);
}
else if (prop->arraydimension && prop->totarraylength) {
else if ((prop->flag & PROP_DYNAMIC) == 0 && prop->arraydimension && prop->totarraylength) {
fprintf(f, "void %sget(PointerRNA *ptr, int values[%u]);\n", func, prop->totarraylength);
fprintf(
f, "void %sset(PointerRNA *ptr, const int values[%u]);\n", func, prop->totarraylength);
@ -2161,7 +2181,7 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
fprintf(f, "float %sget(PointerRNA *ptr);\n", func);
fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func);
}
else if (prop->arraydimension && prop->totarraylength) {
else if ((prop->flag & PROP_DYNAMIC) == 0 && prop->arraydimension && prop->totarraylength) {
fprintf(f, "void %sget(PointerRNA *ptr, float values[%u]);\n", func, prop->totarraylength);
fprintf(f,
"void %sset(PointerRNA *ptr, const float values[%u]);\n",
@ -2846,7 +2866,7 @@ static void rna_def_property_wrapper_funcs(FILE *f, StructDefRNA *dsrna, Propert
char funcname[2048];
rna_construct_wrapper_function_name(
funcname, sizeof(funcname), dsrna->srna->identifier, dp->prop->identifier, "get_length");
fprintf(f, "int %s(PointerRNA *ptr, int *arraylen)\n", funcname);
fprintf(f, "RNA_EXTERN_C int %s(PointerRNA *ptr, int *arraylen)\n", funcname);
fprintf(f, "{\n");
fprintf(f, "\treturn %s(ptr, arraylen);\n", rna_function_string(dp->prop->getlength));
fprintf(f, "}\n\n");
@ -2869,6 +2889,7 @@ static void rna_def_function_wrapper_funcs(FILE *f, StructDefRNA *dsrna, Functio
rna_construct_wrapper_function_name(
funcname, sizeof(funcname), srna->identifier, func->identifier, "func");
fprintf(f, "RNA_EXTERN_C ");
rna_generate_static_parameter_prototypes(f, srna, dfunc, funcname, 0);
fprintf(f, "\n{\n");
@ -2946,9 +2967,10 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA
funcname = rna_alloc_function_name(srna->identifier, func->identifier, "call");
/* function definition */
fprintf(f,
"void %s(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)",
funcname);
fprintf(
f,
"static void %s(bContext *C, ReportList *reports, PointerRNA *_ptr, ParameterList *_parms)",
funcname);
fprintf(f, "\n{\n");
/* variable definitions */
@ -3020,7 +3042,7 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA
rna_type_struct(dparm->prop),
rna_parameter_type_name(dparm->prop),
ptrstr,
dparm->prop->identifier);
rna_safe_id(dparm->prop->identifier));
}
if (has_data) {
@ -3101,14 +3123,14 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA
if (flag & PROP_DYNAMIC) {
fprintf(f,
"\t%s_len = %s((ParameterDynAlloc *)_data)->array_tot;\n",
dparm->prop->identifier,
rna_safe_id(dparm->prop->identifier),
pout ? "(int *)&" : "(int)");
data_str = "(&(((ParameterDynAlloc *)_data)->array))";
}
else {
data_str = "_data";
}
fprintf(f, "\t%s = ", dparm->prop->identifier);
fprintf(f, "\t%s = ", rna_safe_id(dparm->prop->identifier));
if (!pout) {
fprintf(f, "%s", valstr);
@ -3193,10 +3215,13 @@ static void rna_def_function_funcs(FILE *f, StructDefRNA *dsrna, FunctionDefRNA
first = 0;
if (dparm->prop->flag & PROP_DYNAMIC) {
fprintf(f, "%s_len, %s", dparm->prop->identifier, dparm->prop->identifier);
fprintf(f,
"%s_len, %s",
rna_safe_id(dparm->prop->identifier),
rna_safe_id(dparm->prop->identifier));
}
else {
fprintf(f, "%s", dparm->prop->identifier);
fprintf(f, "%s", rna_safe_id(dparm->prop->identifier));
}
}
@ -3495,7 +3520,7 @@ static void rna_generate_internal_property_prototypes(BlenderRNA *UNUSED(brna),
for (prop = base->cont.properties.first; prop; prop = prop->next) {
fprintf(f,
"%s%s rna_%s_%s;\n",
"extern ",
"RNA_EXTERN_C_OR_EXTERN ",
rna_property_structname(prop->type),
base->identifier,
prop->identifier);
@ -3509,7 +3534,7 @@ static void rna_generate_internal_property_prototypes(BlenderRNA *UNUSED(brna),
for (prop = srna->cont.properties.first; prop; prop = prop->next) {
fprintf(f,
"extern %s rna_%s_%s;\n",
"RNA_EXTERN_C %s rna_%s_%s;\n",
rna_property_structname(prop->type),
srna->identifier,
prop->identifier);
@ -4145,7 +4170,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
rna_function_string(iprop->getarray_ex),
rna_function_string(iprop->setarray_ex),
rna_function_string(iprop->range_ex));
rna_int_print(f, iprop->ui_scale_type);
fprintf(f, "%s", rna_ui_scale_type_string(iprop->ui_scale_type));
fprintf(f, ", ");
rna_int_print(f, iprop->softmin);
fprintf(f, ", ");
@ -4207,7 +4232,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
case PROP_STRING: {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
fprintf(f,
"\t%s, %s, %s, %s, %s, %s, %s, %d, %d, ",
"\t%s, %s, %s, %s, %s, %s, %s, (eStringPropertySearchFlag)%d, %d, ",
rna_function_string(sprop->get),
rna_function_string(sprop->length),
rna_function_string(sprop->set),
@ -4530,14 +4555,14 @@ static RNAProcessItem PROCESS_ITEMS[] = {
{"rna_image.c", "rna_image_api.c", RNA_def_image},
{"rna_key.c", NULL, RNA_def_key},
{"rna_light.c", NULL, RNA_def_light},
{"rna_lattice.c", "rna_lattice_api.c", RNA_def_lattice},
{"rna_lattice.cc", "rna_lattice_api.cc", RNA_def_lattice},
{"rna_layer.c", NULL, RNA_def_view_layer},
{"rna_linestyle.c", NULL, RNA_def_linestyle},
{"rna_main.c", "rna_main_api.c", RNA_def_main},
{"rna_fluid.c", NULL, RNA_def_fluid},
{"rna_material.c", "rna_material_api.c", RNA_def_material},
{"rna_mesh.c", "rna_mesh_api.c", RNA_def_mesh},
{"rna_meta.c", "rna_meta_api.c", RNA_def_meta},
{"rna_meta.cc", "rna_meta_api.c", RNA_def_meta},
{"rna_modifier.c", NULL, RNA_def_modifier},
{"rna_gpencil_legacy_modifier.c", NULL, RNA_def_greasepencil_modifier},
{"rna_shader_fx.c", NULL, RNA_def_shader_fx},
@ -4550,7 +4575,7 @@ static RNAProcessItem PROCESS_ITEMS[] = {
{"rna_palette.c", NULL, RNA_def_palette},
{"rna_particle.c", NULL, RNA_def_particle},
{"rna_pointcloud.c", NULL, RNA_def_pointcloud},
{"rna_pose.c", "rna_pose_api.c", RNA_def_pose},
{"rna_pose.cc", "rna_pose_api.c", RNA_def_pose},
{"rna_curveprofile.c", NULL, RNA_def_profile},
{"rna_lightprobe.c", NULL, RNA_def_lightprobe},
{"rna_render.c", NULL, RNA_def_render},
@ -4578,7 +4603,7 @@ static RNAProcessItem PROCESS_ITEMS[] = {
{"rna_world.c", NULL, RNA_def_world},
{"rna_movieclip.c", NULL, RNA_def_movieclip},
{"rna_tracking.c", NULL, RNA_def_tracking},
{"rna_mask.c", NULL, RNA_def_mask},
{"rna_mask.cc", NULL, RNA_def_mask},
{"rna_xr.c", NULL, RNA_def_xr},
{NULL, NULL},
};
@ -4629,6 +4654,13 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const
fprintf(f, "#include \"%s\"\n", api_filename);
}
fprintf(f, "\n");
fprintf(f, "#ifdef __cplusplus\n");
fprintf(f, "# define RNA_EXTERN_C extern \"C\"\n");
fprintf(f, "# define RNA_EXTERN_C_OR_EXTERN extern \"C\"\n");
fprintf(f, "#else\n");
fprintf(f, "# define RNA_EXTERN_C\n");
fprintf(f, "# define RNA_EXTERN_C_OR_EXTERN extern\n");
fprintf(f, "#endif\n");
/* we want the included C files to have warnings enabled but for the generated code
* ignore unused-parameter warnings which are hard to prevent */
@ -5354,7 +5386,9 @@ static int rna_preprocess(const char *outfile, const char *public_header_outfile
fprintf(file,
"/* Automatically generated function declarations for the Data API.\n"
" * Do not edit manually, changes will be overwritten. */\n\n");
fprintf(file, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n");
rna_generate_struct_rna_prototypes(brna, file);
fprintf(file, "#ifdef __cplusplus\n}\n#endif\n");
fclose(file);
status = (DefRNA.error != 0);
}
@ -5363,8 +5397,14 @@ static int rna_preprocess(const char *outfile, const char *public_header_outfile
for (i = 0; PROCESS_ITEMS[i].filename; i++) {
strcpy(deffile, outfile);
strcat(deffile, PROCESS_ITEMS[i].filename);
deffile[strlen(deffile) - 2] = '\0';
strcat(deffile, "_gen.c" TMP_EXT);
if (deffile[strlen(deffile) - 3] == '.') {
deffile[strlen(deffile) - 3] = '\0';
strcat(deffile, "_gen.cc" TMP_EXT);
}
else {
deffile[strlen(deffile) - 2] = '\0';
strcat(deffile, "_gen.c" TMP_EXT);
}
if (status) {
make_bad_file(deffile, __LINE__);

View File

@ -82,7 +82,7 @@ static void rna_Lattice_points_begin(CollectionPropertyIterator *iter, PointerRN
}
}
static void rna_Lattice_update_data(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_Lattice_update_data(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
ID *id = ptr->owner_id;
@ -94,9 +94,7 @@ static void rna_Lattice_update_data(Main *UNUSED(bmain), Scene *UNUSED(scene), P
* we could split this up differently (one update call per property)
* but for now that's overkill
*/
static void rna_Lattice_update_data_editlatt(Main *UNUSED(bmain),
Scene *UNUSED(scene),
PointerRNA *ptr)
static void rna_Lattice_update_data_editlatt(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
ID *id = ptr->owner_id;
Lattice *lt = (Lattice *)ptr->owner_id;
@ -126,7 +124,8 @@ static void rna_Lattice_update_size(Main *bmain, Scene *scene, PointerRNA *ptr)
neww = (lt->opntsw > 0) ? lt->opntsw : lt->pntsw;
/* #BKE_lattice_resize needs an object, any object will have the same result */
for (ob = bmain->objects.first; ob; ob = ob->id.next) {
for (ob = static_cast<Object *>(bmain->objects.first); ob;
ob = static_cast<Object *>(ob->id.next)) {
if (ob->data == lt) {
BKE_lattice_resize(lt, newu, newv, neww, ob);
if (lt->editlatt) {
@ -149,7 +148,7 @@ static void rna_Lattice_update_size(Main *bmain, Scene *scene, PointerRNA *ptr)
static void rna_Lattice_use_outside_set(PointerRNA *ptr, bool value)
{
Lattice *lt = ptr->data;
Lattice *lt = static_cast<Lattice *>(ptr->data);
if (value) {
lt->flag |= LT_OUTSIDE;
@ -172,11 +171,11 @@ static void rna_Lattice_use_outside_set(PointerRNA *ptr, bool value)
}
}
static int rna_Lattice_size_editable(PointerRNA *ptr, const char **UNUSED(r_info))
static int rna_Lattice_size_editable(PointerRNA *ptr, const char ** /*r_info*/)
{
Lattice *lt = (Lattice *)ptr->data;
return (lt->key == NULL) ? PROP_EDITABLE : 0;
return (lt->key == NULL) ? int(PROP_EDITABLE) : 0;
}
static void rna_Lattice_points_u_set(PointerRNA *ptr, int value)
@ -202,7 +201,7 @@ static void rna_Lattice_points_w_set(PointerRNA *ptr, int value)
static void rna_Lattice_vg_name_set(PointerRNA *ptr, const char *value)
{
Lattice *lt = ptr->data;
Lattice *lt = static_cast<Lattice *>(ptr->data);
STRNCPY(lt->vgroup, value);
if (lt->editlatt) {

View File

@ -40,7 +40,7 @@ void RNA_api_lattice(StructRNA *srna)
func = RNA_def_function(srna, "transform", "rna_Lattice_transform");
RNA_def_function_ui_description(func, "Transform lattice by a matrix");
parm = RNA_def_float_matrix(func, "matrix", 4, 4, NULL, 0.0f, 0.0f, "", "Matrix", 0.0f, 0.0f);
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
RNA_def_boolean(func, "shape_keys", 0, "", "Transform Shape Keys");
RNA_def_function(srna, "update_gpu_tag", "rna_Lattice_update_gpu_tag");

View File

@ -45,7 +45,7 @@
# include "WM_api.h"
static void rna_Mask_update_data(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_Mask_update_data(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
Mask *mask = (Mask *)ptr->owner_id;
@ -55,7 +55,7 @@ static void rna_Mask_update_data(Main *UNUSED(bmain), Scene *UNUSED(scene), Poin
static void rna_Mask_update_parent(Main *bmain, Scene *scene, PointerRNA *ptr)
{
MaskParent *parent = ptr->data;
MaskParent *parent = static_cast<MaskParent *>(ptr->data);
if (parent->id) {
if (GS(parent->id->name) == ID_MC) {
@ -108,11 +108,11 @@ static void rna_Mask_update_parent(Main *bmain, Scene *scene, PointerRNA *ptr)
/* NOTE: this function exists only to avoid id reference-counting. */
static void rna_MaskParent_id_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
MaskParent *mpar = (MaskParent *)ptr->data;
mpar->id = value.data;
mpar->id = static_cast<ID *>(value.data);
}
static StructRNA *rna_MaskParent_id_typef(PointerRNA *ptr)
@ -186,7 +186,7 @@ static PointerRNA rna_Mask_layer_active_get(PointerRNA *ptr)
static void rna_Mask_layer_active_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
Mask *mask = (Mask *)ptr->owner_id;
MaskLayer *masklay = (MaskLayer *)value.data;
@ -223,7 +223,7 @@ static PointerRNA rna_MaskLayer_active_spline_get(PointerRNA *ptr)
static void rna_MaskLayer_active_spline_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
MaskLayer *masklay = (MaskLayer *)ptr->data;
MaskSpline *spline = (MaskSpline *)value.data;
@ -246,7 +246,7 @@ static PointerRNA rna_MaskLayer_active_spline_point_get(PointerRNA *ptr)
static void rna_MaskLayer_active_spline_point_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
MaskLayer *masklay = (MaskLayer *)ptr->data;
MaskSpline *spline;
@ -254,7 +254,7 @@ static void rna_MaskLayer_active_spline_point_set(PointerRNA *ptr,
masklay->act_point = NULL;
for (spline = masklay->splines.first; spline; spline = spline->next) {
for (spline = static_cast<MaskSpline *>(masklay->splines.first); spline; spline = spline->next) {
if (point >= spline->points && point < spline->points + spline->tot_point) {
masklay->act_point = point;
@ -316,9 +316,12 @@ static int rna_MaskSplinePoint_handle_type_get(PointerRNA *ptr)
static MaskSpline *mask_spline_from_point(Mask *mask, MaskSplinePoint *point)
{
MaskLayer *mask_layer;
for (mask_layer = mask->masklayers.first; mask_layer; mask_layer = mask_layer->next) {
for (mask_layer = static_cast<MaskLayer *>(mask->masklayers.first); mask_layer;
mask_layer = mask_layer->next)
{
MaskSpline *spline;
for (spline = mask_layer->splines.first; spline; spline = spline->next) {
for (spline = static_cast<MaskSpline *>(mask_layer->splines.first); spline;
spline = spline->next) {
if (point >= spline->points && point < spline->points + spline->tot_point) {
return spline;
}
@ -399,7 +402,7 @@ static MaskLayer *rna_Mask_layers_new(Mask *mask, const char *name)
static void rna_Mask_layers_remove(Mask *mask, ReportList *reports, PointerRNA *masklay_ptr)
{
MaskLayer *masklay = masklay_ptr->data;
MaskLayer *masklay = static_cast<MaskLayer *>(masklay_ptr->data);
if (BLI_findindex(&mask->masklayers, masklay) == -1) {
BKE_reportf(reports,
RPT_ERROR,
@ -440,7 +443,7 @@ static void rna_MaskLayer_spline_remove(ID *id,
PointerRNA *spline_ptr)
{
Mask *mask = (Mask *)id;
MaskSpline *spline = spline_ptr->data;
MaskSpline *spline = static_cast<MaskSpline *>(spline_ptr->data);
if (BKE_mask_spline_remove(mask_layer, spline) == false) {
BKE_reportf(
@ -487,7 +490,7 @@ static void rna_MaskSpline_points_add(ID *id, MaskSpline *spline, int count)
return;
}
for (layer = mask->masklayers.first; layer; layer = layer->next) {
for (layer = static_cast<MaskLayer *>(mask->masklayers.first); layer; layer = layer->next) {
if (BLI_findindex(&layer->splines, spline) != -1) {
break;
}
@ -503,8 +506,8 @@ static void rna_MaskSpline_points_add(ID *id, MaskSpline *spline, int count)
active_point_index = layer->act_point - spline->points;
}
spline->points = MEM_recallocN(spline->points,
sizeof(MaskSplinePoint) * (spline->tot_point + count));
spline->points = static_cast<MaskSplinePoint *>(
MEM_recallocN(spline->points, sizeof(MaskSplinePoint) * (spline->tot_point + count)));
spline->tot_point += count;
if (active_point_index >= 0) {
@ -534,13 +537,13 @@ static void rna_MaskSpline_point_remove(ID *id,
PointerRNA *point_ptr)
{
Mask *mask = (Mask *)id;
MaskSplinePoint *point = point_ptr->data;
MaskSplinePoint *point = static_cast<MaskSplinePoint *>(point_ptr->data);
MaskSplinePoint *new_point_array;
MaskLayer *layer;
int active_point_index = -1;
int point_index;
for (layer = mask->masklayers.first; layer; layer = layer->next) {
for (layer = static_cast<MaskLayer *>(mask->masklayers.first); layer; layer = layer->next) {
if (BLI_findindex(&layer->splines, spline) != -1) {
break;
}
@ -563,8 +566,8 @@ static void rna_MaskSpline_point_remove(ID *id,
point_index = point - spline->points;
new_point_array = MEM_mallocN(sizeof(MaskSplinePoint) * (spline->tot_point - 1),
"remove mask point");
new_point_array = static_cast<MaskSplinePoint *>(
MEM_mallocN(sizeof(MaskSplinePoint) * (spline->tot_point - 1), "remove mask point"));
memcpy(new_point_array, spline->points, sizeof(MaskSplinePoint) * point_index);
memcpy(new_point_array + point_index,
@ -809,7 +812,7 @@ static void rna_def_mask_splines(BlenderRNA *brna)
RNA_def_function_flag(func, FUNC_USE_REPORTS);
parm = RNA_def_pointer(func, "spline", "MaskSpline", "", "The spline to remove");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
/* active spline */
prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
@ -847,7 +850,7 @@ static void rna_def_maskSplinePoints(BlenderRNA *brna)
RNA_def_function_ui_description(func, "Add a number of point to this spline");
parm = RNA_def_int(
func, "count", 1, 0, INT_MAX, "Number", "Number of points to add to the spline", 0, INT_MAX);
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
/* Remove the point */
func = RNA_def_function(srna, "remove", "rna_MaskSpline_point_remove");
@ -856,7 +859,7 @@ static void rna_def_maskSplinePoints(BlenderRNA *brna)
RNA_def_function_flag(func, FUNC_USE_REPORTS);
parm = RNA_def_pointer(func, "point", "MaskSplinePoint", "", "The point to remove");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
}
static void rna_def_maskSpline(BlenderRNA *brna)
@ -1071,7 +1074,7 @@ static void rna_def_masklayers(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_function_ui_description(func, "Remove layer from this mask");
parm = RNA_def_pointer(func, "layer", "MaskLayer", "", "Shape to be removed");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
/* clear all layers */
func = RNA_def_function(srna, "clear", "rna_Mask_layers_clear");

View File

@ -37,7 +37,7 @@
# include "WM_api.h"
# include "WM_types.h"
static int rna_Meta_texspace_editable(PointerRNA *ptr, const char **UNUSED(r_info))
static int rna_Meta_texspace_editable(PointerRNA *ptr, const char ** /*r_info*/)
{
MetaBall *mb = (MetaBall *)ptr->data;
return (mb->texspace_flag & MB_TEXSPACE_FLAG_AUTO) ? 0 : PROP_EDITABLE;
@ -75,7 +75,7 @@ static void rna_Meta_texspace_size_set(PointerRNA *ptr, const float *values)
copy_v3_v3(mb->texspace_size, values);
}
static void rna_MetaBall_redraw_data(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_MetaBall_redraw_data(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
ID *id = ptr->owner_id;
@ -83,7 +83,7 @@ static void rna_MetaBall_redraw_data(Main *UNUSED(bmain), Scene *UNUSED(scene),
WM_main_add_notifier(NC_GEOM | ND_DATA, id);
}
static void rna_MetaBall_update_data(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_MetaBall_update_data(Main *bmain, Scene * /*scene*/, PointerRNA *ptr)
{
MetaBall *mb = (MetaBall *)ptr->owner_id;
@ -101,7 +101,7 @@ static void rna_MetaBall_update_data(Main *bmain, Scene *UNUSED(scene), PointerR
static void rna_MetaBall_update_rotation(Main *bmain, Scene *scene, PointerRNA *ptr)
{
MetaElem *ml = ptr->data;
MetaElem *ml = static_cast<MetaElem *>(ptr->data);
normalize_qt(ml->quat);
rna_MetaBall_update_data(bmain, scene, ptr);
}
@ -121,7 +121,7 @@ static MetaElem *rna_MetaBall_elements_new(MetaBall *mb, int type)
static void rna_MetaBall_elements_remove(MetaBall *mb, ReportList *reports, PointerRNA *ml_ptr)
{
MetaElem *ml = ml_ptr->data;
MetaElem *ml = static_cast<MetaElem *>(ml_ptr->data);
if (BLI_remlink_safe(&mb->elems, ml) == false) {
BKE_reportf(
@ -159,7 +159,7 @@ static bool rna_Meta_is_editmode_get(PointerRNA *ptr)
static char *rna_MetaElement_path(const PointerRNA *ptr)
{
const MetaBall *mb = (MetaBall *)ptr->owner_id;
const MetaElem *ml = ptr->data;
const MetaElem *ml = static_cast<MetaElem *>(ptr->data);
int index = -1;
if (mb->editelems) {
@ -294,7 +294,7 @@ static void rna_def_metaball_elements(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_function_flag(func, FUNC_USE_REPORTS);
parm = RNA_def_pointer(func, "element", "MetaElement", "", "The element to remove");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
func = RNA_def_function(srna, "clear", "rna_MetaBall_elements_clear");
RNA_def_function_ui_description(func, "Remove all elements from the metaball");

View File

@ -83,7 +83,7 @@ const EnumPropertyItem rna_enum_color_sets_items[] = {
# include "RNA_access.h"
static void rna_Pose_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_Pose_update(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
/* XXX when to use this? ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK); */
@ -91,7 +91,7 @@ static void rna_Pose_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRN
WM_main_add_notifier(NC_OBJECT | ND_POSE, ptr->owner_id);
}
static void rna_Pose_dependency_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_Pose_dependency_update(Main *bmain, Scene * /*scene*/, PointerRNA *ptr)
{
DEG_relations_tag_update(bmain);
@ -99,7 +99,7 @@ static void rna_Pose_dependency_update(Main *bmain, Scene *UNUSED(scene), Pointe
WM_main_add_notifier(NC_OBJECT | ND_POSE, ptr->owner_id);
}
static void rna_Pose_IK_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_Pose_IK_update(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
/* XXX when to use this? ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK); */
Object *ob = (Object *)ptr->owner_id;
@ -110,14 +110,14 @@ static void rna_Pose_IK_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Pointe
BIK_clear_data(ob->pose);
}
static char *rna_Pose_path(const PointerRNA *UNUSED(ptr))
static char *rna_Pose_path(const PointerRNA * /*ptr*/)
{
return BLI_strdup("pose");
}
static char *rna_PoseBone_path(const PointerRNA *ptr)
{
const bPoseChannel *pchan = ptr->data;
const bPoseChannel *pchan = static_cast<const bPoseChannel *>(ptr->data);
char name_esc[sizeof(pchan->name) * 2];
BLI_str_escape(name_esc, pchan->name, sizeof(name_esc));
@ -153,7 +153,7 @@ static void rna_bone_group_remove(ID *id, bPose *pose, ReportList *reports, Poin
return;
}
bActionGroup *grp = grp_ptr->data;
bActionGroup *grp = static_cast<bActionGroup *>(grp_ptr->data);
const int grp_idx = BLI_findindex(&pose->agroups, grp);
if (grp_idx == -1) {
@ -174,7 +174,7 @@ void rna_ActionGroup_colorset_set(PointerRNA *ptr, int value)
return;
}
bActionGroup *grp = ptr->data;
bActionGroup *grp = static_cast<bActionGroup *>(ptr->data);
/* ensure only valid values get set */
if ((value >= -1) && (value < 21)) {
@ -187,7 +187,7 @@ void rna_ActionGroup_colorset_set(PointerRNA *ptr, int value)
bool rna_ActionGroup_is_custom_colorset_get(PointerRNA *ptr)
{
bActionGroup *grp = ptr->data;
bActionGroup *grp = static_cast<bActionGroup *>(ptr->data);
return (grp->customCol < 0);
}
@ -199,7 +199,7 @@ static void rna_BoneGroup_name_set(PointerRNA *ptr, const char *value)
return;
}
bActionGroup *agrp = ptr->data;
bActionGroup *agrp = static_cast<bActionGroup *>(ptr->data);
/* copy the new name into the name slot */
STRNCPY_UTF8(agrp->name, value);
@ -214,7 +214,7 @@ static void rna_BoneGroup_name_set(PointerRNA *ptr, const char *value)
static IDProperty **rna_PoseBone_idprops(PointerRNA *ptr)
{
bPoseChannel *pchan = ptr->data;
bPoseChannel *pchan = static_cast<bPoseChannel *>(ptr->data);
return &pchan->prop;
}
@ -234,10 +234,10 @@ static void rna_Pose_ik_solver_set(struct PointerRNA *ptr, int value)
}
}
static void rna_Pose_ik_solver_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_Pose_ik_solver_update(Main *bmain, Scene * /*scene*/, PointerRNA *ptr)
{
Object *ob = (Object *)ptr->owner_id;
bPose *pose = ptr->data;
bPose *pose = static_cast<bPose *>(ptr->data);
BKE_pose_tag_recalc(bmain, pose); /* checks & sorts pose channels */
DEG_relations_tag_update(bmain);
@ -252,7 +252,7 @@ static void rna_Pose_ik_solver_update(Main *bmain, Scene *UNUSED(scene), Pointer
/* rotation - axis-angle */
static void rna_PoseChannel_rotation_axis_angle_get(PointerRNA *ptr, float *value)
{
bPoseChannel *pchan = ptr->data;
bPoseChannel *pchan = static_cast<bPoseChannel *>(ptr->data);
/* for now, assume that rotation mode is axis-angle */
value[0] = pchan->rotAngle;
@ -262,7 +262,7 @@ static void rna_PoseChannel_rotation_axis_angle_get(PointerRNA *ptr, float *valu
/* rotation - axis-angle */
static void rna_PoseChannel_rotation_axis_angle_set(PointerRNA *ptr, const float *value)
{
bPoseChannel *pchan = ptr->data;
bPoseChannel *pchan = static_cast<bPoseChannel *>(ptr->data);
/* for now, assume that rotation mode is axis-angle */
pchan->rotAngle = value[0];
@ -273,7 +273,7 @@ static void rna_PoseChannel_rotation_axis_angle_set(PointerRNA *ptr, const float
static void rna_PoseChannel_rotation_mode_set(PointerRNA *ptr, int value)
{
bPoseChannel *pchan = ptr->data;
bPoseChannel *pchan = static_cast<bPoseChannel *>(ptr->data);
/* use API Method for conversions... */
BKE_rotMode_change_values(
@ -285,7 +285,7 @@ static void rna_PoseChannel_rotation_mode_set(PointerRNA *ptr, int value)
static float rna_PoseChannel_length_get(PointerRNA *ptr)
{
bPoseChannel *pchan = ptr->data;
bPoseChannel *pchan = static_cast<bPoseChannel *>(ptr->data);
return len_v3v3(pchan->pose_head, pchan->pose_tail);
}
@ -300,12 +300,12 @@ static void rna_PoseChannel_name_set(PointerRNA *ptr, const char *value)
STRNCPY(oldname, pchan->name);
BLI_assert(BKE_id_is_in_global_main(&ob->id));
BLI_assert(BKE_id_is_in_global_main(ob->data));
ED_armature_bone_rename(G_MAIN, ob->data, oldname, newname);
BLI_assert(BKE_id_is_in_global_main(static_cast<ID *>(ob->data)));
ED_armature_bone_rename(G_MAIN, static_cast<bArmature *>(ob->data), oldname, newname);
}
/* See rna_Bone_update_renamed() */
static void rna_PoseChannel_name_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_PoseChannel_name_update(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
ID *id = ptr->owner_id;
@ -323,7 +323,7 @@ static PointerRNA rna_PoseChannel_bone_get(PointerRNA *ptr)
PointerRNA tmp_ptr = *ptr;
/* Replace the id_data pointer with the Armature ID. */
tmp_ptr.owner_id = ob->data;
tmp_ptr.owner_id = static_cast<ID *>(ob->data);
return rna_pointer_inherit_refine(&tmp_ptr, &RNA_Bone, pchan->bone);
}
@ -366,10 +366,10 @@ static StructRNA *rna_Pose_ikparam_typef(PointerRNA *ptr)
}
}
static void rna_Itasc_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
static void rna_Itasc_update(Main * /*bmain*/, Scene * /*scene*/, PointerRNA *ptr)
{
Object *ob = (Object *)ptr->owner_id;
bItasc *itasc = ptr->data;
bItasc *itasc = static_cast<bItasc *>(ptr->data);
/* verify values */
if (itasc->precision < 0.0001f) {
@ -415,7 +415,7 @@ static PointerRNA rna_PoseChannel_bone_group_get(PointerRNA *ptr)
bActionGroup *grp;
if (pose) {
grp = BLI_findlink(&pose->agroups, pchan->agrp_index - 1);
grp = static_cast<bActionGroup *>(BLI_findlink(&pose->agroups, pchan->agrp_index - 1));
}
else {
grp = NULL;
@ -426,7 +426,7 @@ static PointerRNA rna_PoseChannel_bone_group_get(PointerRNA *ptr)
static void rna_PoseChannel_bone_group_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
Object *ob = (Object *)ptr->owner_id;
bPose *pose = (ob) ? ob->pose : NULL;
@ -453,7 +453,7 @@ static void rna_PoseChannel_bone_group_index_set(PointerRNA *ptr, int value)
}
static void rna_PoseChannel_bone_group_index_range(
PointerRNA *ptr, int *min, int *max, int *UNUSED(softmin), int *UNUSED(softmax))
PointerRNA *ptr, int *min, int *max, int * /*softmin*/, int * /*softmax*/)
{
Object *ob = (Object *)ptr->owner_id;
bPose *pose = (ob) ? ob->pose : NULL;
@ -471,7 +471,7 @@ static PointerRNA rna_Pose_active_bone_group_get(PointerRNA *ptr)
static void rna_Pose_active_bone_group_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
bPose *pose = (bPose *)ptr->data;
pose->active_group = BLI_findindex(&pose->agroups, value.data) + 1;
@ -490,7 +490,7 @@ static void rna_Pose_active_bone_group_index_set(PointerRNA *ptr, int value)
}
static void rna_Pose_active_bone_group_index_range(
PointerRNA *ptr, int *min, int *max, int *UNUSED(softmin), int *UNUSED(softmax))
PointerRNA *ptr, int *min, int *max, int * /*softmin*/, int * /*softmax*/)
{
bPose *pose = (bPose *)ptr->data;
@ -567,7 +567,7 @@ static PointerRNA rna_PoseChannel_active_constraint_get(PointerRNA *ptr)
static void rna_PoseChannel_active_constraint_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
bPoseChannel *pchan = (bPoseChannel *)ptr->data;
BKE_constraints_active_set(&pchan->constraints, (bConstraint *)value.data);
@ -590,7 +590,7 @@ static bConstraint *rna_PoseChannel_constraints_new(ID *id,
static void rna_PoseChannel_constraints_remove(
ID *id, bPoseChannel *pchan, Main *bmain, ReportList *reports, PointerRNA *con_ptr)
{
bConstraint *con = con_ptr->data;
bConstraint *con = static_cast<bConstraint *>(con_ptr->data);
const bool is_ik = ELEM(con->type, CONSTRAINT_TYPE_KINEMATIC, CONSTRAINT_TYPE_SPLINEIK);
Object *ob = (Object *)id;
@ -639,7 +639,7 @@ static bConstraint *rna_PoseChannel_constraints_copy(ID *id,
PointerRNA *con_ptr)
{
Object *ob = (Object *)id;
bConstraint *con = con_ptr->data;
bConstraint *con = static_cast<bConstraint *>(con_ptr->data);
bConstraint *new_con = BKE_constraint_copy_for_pose(ob, pchan, con);
new_con->flag |= CONSTRAINT_OVERRIDE_LIBRARY_LOCAL;
@ -652,16 +652,16 @@ static bConstraint *rna_PoseChannel_constraints_copy(ID *id,
bool rna_PoseChannel_constraints_override_apply(Main *bmain,
PointerRNA *ptr_dst,
PointerRNA *ptr_src,
PointerRNA *UNUSED(ptr_storage),
PointerRNA * /*ptr_storage*/,
PropertyRNA *prop_dst,
PropertyRNA *UNUSED(prop_src),
PropertyRNA *UNUSED(prop_storage),
const int UNUSED(len_dst),
const int UNUSED(len_src),
const int UNUSED(len_storage),
PointerRNA *UNUSED(ptr_item_dst),
PointerRNA *UNUSED(ptr_item_src),
PointerRNA *UNUSED(ptr_item_storage),
PropertyRNA * /*prop_src*/,
PropertyRNA * /*prop_storage*/,
const int /*len_dst*/,
const int /*len_src*/,
const int /*len_storage*/,
PointerRNA * /*ptr_item_dst*/,
PointerRNA * /*ptr_item_src*/,
PointerRNA * /*ptr_item_storage*/,
IDOverrideLibraryPropertyOperation *opop)
{
BLI_assert(opop->operation == LIBOVERRIDE_OP_INSERT_AFTER &&
@ -674,14 +674,15 @@ bool rna_PoseChannel_constraints_override_apply(Main *bmain,
* even if we insert several items in a row, we always insert first one, then second one, etc.
* So we should always find 'anchor' constraint in both _src *and* _dst */
const size_t name_offset = offsetof(bConstraint, name);
bConstraint *con_anchor = BLI_listbase_string_or_index_find(&pchan_dst->constraints,
opop->subitem_reference_name,
name_offset,
opop->subitem_reference_index);
bConstraint *con_anchor = static_cast<bConstraint *>(
BLI_listbase_string_or_index_find(&pchan_dst->constraints,
opop->subitem_reference_name,
name_offset,
opop->subitem_reference_index));
/* If `con_anchor` is NULL, `con_src` will be inserted in first position. */
bConstraint *con_src = BLI_listbase_string_or_index_find(
&pchan_src->constraints, opop->subitem_local_name, name_offset, opop->subitem_local_index);
bConstraint *con_src = static_cast<bConstraint *>(BLI_listbase_string_or_index_find(
&pchan_src->constraints, opop->subitem_local_name, name_offset, opop->subitem_local_index));
if (con_src == NULL) {
BLI_assert(con_src != NULL);
@ -703,7 +704,7 @@ bool rna_PoseChannel_constraints_override_apply(Main *bmain,
return true;
}
static int rna_PoseChannel_proxy_editable(PointerRNA *UNUSED(ptr), const char **UNUSED(r_info))
static int rna_PoseChannel_proxy_editable(PointerRNA * /*ptr*/, const char ** /*r_info*/)
{
# if 0
Object *ob = (Object *)ptr->owner_id;
@ -853,12 +854,13 @@ static bPoseChannel *rna_PoseChannel_ensure_own_pchan(Object *ob,
static void rna_PoseChannel_custom_shape_transform_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
struct ReportList * /*reports*/)
{
bPoseChannel *pchan = (bPoseChannel *)ptr->data;
Object *ob = (Object *)ptr->owner_id;
pchan->custom_tx = rna_PoseChannel_ensure_own_pchan(ob, (Object *)value.owner_id, value.data);
pchan->custom_tx = static_cast<bPoseChannel *>(rna_PoseChannel_ensure_own_pchan(
ob, (Object *)value.owner_id, static_cast<bPoseChannel *>(value.data)));
}
#else
@ -962,7 +964,7 @@ static void rna_def_pose_channel_constraints(BlenderRNA *brna, PropertyRNA *cpro
/* constraint to add */
parm = RNA_def_enum(
func, "type", rna_enum_constraint_type_items, 1, "", "Constraint type to add");
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
func = RNA_def_function(srna, "remove", "rna_PoseChannel_constraints_remove");
RNA_def_function_ui_description(func, "Remove a constraint from this object");
@ -971,16 +973,16 @@ static void rna_def_pose_channel_constraints(BlenderRNA *brna, PropertyRNA *cpro
/* constraint to remove */
parm = RNA_def_pointer(func, "constraint", "Constraint", "", "Removed constraint");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
func = RNA_def_function(srna, "move", "rna_PoseChannel_constraints_move");
RNA_def_function_ui_description(func, "Move a constraint to a different position");
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN | FUNC_USE_REPORTS);
parm = RNA_def_int(
func, "from_index", -1, INT_MIN, INT_MAX, "From Index", "Index to move", 0, 10000);
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
parm = RNA_def_int(func, "to_index", -1, INT_MIN, INT_MAX, "To Index", "Target index", 0, 10000);
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
RNA_def_parameter_flags(parm, PropertyFlag(0), PARM_REQUIRED);
func = RNA_def_function(srna, "copy", "rna_PoseChannel_constraints_copy");
RNA_def_function_ui_description(func, "Add a new constraint that is a copy of the given one");
@ -992,7 +994,7 @@ static void rna_def_pose_channel_constraints(BlenderRNA *brna, PropertyRNA *cpro
"",
"Constraint to copy - may belong to a different object");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
/* return type */
parm = RNA_def_pointer(func, "new_constraint", "Constraint", "", "New constraint");
RNA_def_function_return(func, parm);
@ -1645,7 +1647,7 @@ static void rna_def_bone_groups(BlenderRNA *brna, PropertyRNA *cprop)
/* bone group to remove */
parm = RNA_def_pointer(func, "group", "BoneGroup", "", "Removed bone group");
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, 0);
RNA_def_parameter_clear_flags(parm, PROP_THICK_WRAP, ParameterFlag(0));
prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
RNA_def_property_struct_type(prop, "BoneGroup");