108 r_ptr->
type = &RNA_BlendData;
124 if (
type == idtype) {
132 r_ptr->
type = idtype;
156 if (rtype == r_ptr->
type) {
182 r_ptr->
type = &RNA_BlenderRNA;
194 while (
result.type->refine) {
248 return type->idproperties(
ptr);
254 if (property_ptr ==
NULL) {
263 return *property_ptr;
283 "Got unexpected IDProp container when trying to retrieve %s: %d\n", name, group->
type);
358 switch (idprop->
type) {
407 &rna_PropertyGroupItem_string,
408 &rna_PropertyGroupItem_int,
409 &rna_PropertyGroupItem_float,
413 &rna_PropertyGroupItem_group,
414 &rna_PropertyGroupItem_id,
415 &rna_PropertyGroupItem_double,
416 &rna_PropertyGroupItem_idp_array,
421 &rna_PropertyGroupItem_int_array,
422 &rna_PropertyGroupItem_float_array,
426 &rna_PropertyGroupItem_collection,
428 &rna_PropertyGroupItem_double_array,
441 memset(r_prop_rna_or_id, 0,
sizeof(*r_prop_rna_or_id));
443 r_prop_rna_or_id->
ptr = *
ptr;
444 r_prop_rna_or_id->
rawprop = prop;
447 r_prop_rna_or_id->
rnaprop = prop;
468 r_prop_rna_or_id->
idprop = idprop;
473 r_prop_rna_or_id->
is_set =
true;
481 if (idprop_evaluated !=
NULL && idprop->
type != idprop_evaluated->
type) {
482 idprop_evaluated =
NULL;
485 r_prop_rna_or_id->
idprop = idprop_evaluated;
488 r_prop_rna_or_id->
is_set = (idprop_evaluated !=
NULL);
508 *prop = prop_rna_or_id.
rnaprop;
509 return prop_rna_or_id.
idprop;
518 *prop = prop_rna_or_id.
rnaprop;
588 return type->identifier;
616 return type->description;
621 return type->translation_context;
626 return type->nameproperty;
631 return type->prop_tag_defines;
636 return type->iteratorproperty;
647 if (
type->base == parent_type) {
699 if (srna == &RNA_AnyType) {
708 for (base =
type; base; base = base->
base) {
719 if (identifier[0] ==
'[' && identifier[1] ==
'"') {
808 for (; srna; srna = srna->
base) {
821 for (; srna; srna = srna->
base) {
879 if (
type->instance) {
928 if (srna_exists->
base) {
949 const char *identifier,
952 const int len_sep = strlen(sep);
953 const int len_id = strlen(identifier);
954 const char *p = strstr(identifier, sep);
958 const bool failure =
true;
961 const bool failure =
false;
963 if (p ==
NULL || p == identifier || p + len_sep >= identifier + len_id) {
966 "'%s' does not contain '%s' with prefix and suffix",
972 const char *
c, *start, *end, *
last;
976 for (
c = start;
c != end;
c++) {
977 if (((*
c >=
'A' && *
c <=
'Z') || ((
c != start) && (*
c >=
'0' && *
c <=
'9')) ||
978 ((
c != start) && (
c !=
last) && (*
c ==
'_'))) == 0) {
980 reports, report_level,
"'%s' doesn't have upper case alpha-numeric prefix", identifier);
986 end = identifier + len_id;
988 for (
c = start;
c != end;
c++) {
989 if (((*
c >=
'A' && *
c <=
'Z') || (*
c >=
'a' && *
c <=
'z') || (*
c >=
'0' && *
c <=
'9') ||
990 ((
c != start) && (
c !=
last) && (*
c ==
'_'))) == 0) {
991 BKE_reportf(reports, report_level,
"'%s' doesn't have an alpha-numeric suffix", identifier);
1041 switch (rna_prop->
type) {
1107 const char *vectoritem =
"XYZW";
1108 const char *quatitem =
"WXYZ";
1109 const char *coloritem =
"RGBA";
1116 return quatitem[index];
1118 if ((index < 4) &&
ELEM(subtype,
1127 return vectoritem[index];
1130 return coloritem[index];
1155 else if (
ELEM(subtype,
1193 int softmin, softmax;
1199 *hardmin = ui_data->
min;
1200 *hardmax = ui_data->
max;
1213 iprop->
range(
ptr, hardmin, hardmax, &softmin, &softmax);
1219 iprop->
range_ex(
ptr, prop, hardmin, hardmax, &softmin, &softmax);
1231 int hardmin, hardmax;
1239 *step = ui_data_int->
step;
1256 iprop->
range(
ptr, &hardmin, &hardmax, softmin, softmax);
1258 *softmin =
max_ii(*softmin, hardmin);
1259 *softmax =
min_ii(*softmax, hardmax);
1265 iprop->
range_ex(
ptr, prop, &hardmin, &hardmax, softmin, softmax);
1267 *softmin =
max_ii(*softmin, hardmin);
1268 *softmax =
min_ii(*softmax, hardmax);
1271 *step = iprop->
step;
1277 float softmin, softmax;
1283 *hardmin = (
float)ui_data->
min;
1287 *hardmin = -FLT_MAX;
1294 *hardmin = -FLT_MAX;
1297 fprop->
range(
ptr, hardmin, hardmax, &softmin, &softmax);
1300 *hardmin = -FLT_MAX;
1303 fprop->
range_ex(
ptr, prop, hardmin, hardmax, &softmin, &softmax);
1319 float hardmin, hardmax;
1325 *softmin = (
float)ui_data->
soft_min;
1327 *step = ui_data->
step;
1331 *softmin = -FLT_MAX;
1346 fprop->
range(
ptr, &hardmin, &hardmax, softmin, softmax);
1348 *softmin =
max_ff(*softmin, hardmin);
1349 *softmax =
min_ff(*softmax, hardmax);
1355 fprop->
range_ex(
ptr, prop, &hardmin, &hardmax, softmin, softmax);
1357 *softmin =
max_ff(*softmin, hardmin);
1358 *softmax =
min_ff(*softmax, hardmax);
1361 *step = fprop->
step;
1428 return &RNA_UnknownType;
1442 return pprop->
poll(
ptr, *value);
1448 printf(
"%s: %s is not a pointer property.\n", __func__, prop->
identifier);
1455 const bool use_static,
1468 if (
C !=
NULL || no_context) {
1489 *r_item = eprop->
item;
1505 #ifdef WITH_INTERNATIONAL
1506 static void property_enum_translate(
PropertyRNA *prop,
1519 if (!(do_iface || do_tooltip)) {
1547 if (nitem[i].name && do_iface) {
1550 if (nitem[i].description && do_tooltip) {
1569 #ifdef WITH_INTERNATIONAL
1572 property_enum_translate(prop, (
EnumPropertyItem **)r_item, r_totitem, r_free);
1588 memcpy(item_array, eprop->
item, mem_size);
1598 if (
C !=
NULL || no_context) {
1608 for (i = 0; i < eprop->
totitem; i++) {
1609 bool exists =
false;
1614 for (i_fixed = 0; item[i_fixed].
identifier; i_fixed++) {
1615 if (
STREQ(item[i_fixed].identifier, item_array[i].identifier)) {
1633 #ifdef WITH_INTERNATIONAL
1634 property_enum_translate(prop, &item_array, r_totitem, r_free);
1636 *r_item = item_array;
1651 *r_value = item[i].
value;
1680 const char **r_identifier)
1688 r_identifier[index] =
NULL;
1696 *r_name = item[i].
name;
1704 const char **r_description)
1908 const char **r_info)
1914 const char *info =
"";
1918 if (r_info !=
NULL) {
1924 if (r_info !=
NULL && (*r_info)[0] ==
'\0') {
1925 *r_info =
N_(
"This property is for internal use only and can't be edited");
1938 if (is_linked_prop_exception) {
1941 if (r_info !=
NULL && (*r_info)[0] ==
'\0') {
1942 *r_info =
N_(
"Can't edit this property from a linked data-block");
1949 if (r_info !=
NULL && (*r_info)[0] ==
'\0') {
1950 *r_info =
N_(
"Can't edit this property from an override data-block");
1954 if (is_liboverride_system && !is_linked_prop_exception) {
1955 if (r_info !=
NULL && (*r_info)[0] ==
'\0') {
1956 *r_info =
N_(
"Can't edit this property from a system override data-block");
1979 const char *dummy_info;
2012 bool driven, special;
2022 for (index = 0; index <
len; index++) {
2042 ret = (prop == r_prop);
2165 else if (bprop->
get) {
2168 else if (bprop->
get_ex) {
2196 else if (bprop->
set) {
2199 else if (bprop->
set_ex) {
2216 const bool *defarr,
int defarr_length,
bool defvalue,
int out_length,
bool *r_values)
2218 if (defarr && defarr_length > 0) {
2219 defarr_length =
MIN2(defarr_length, out_length);
2220 memcpy(r_values, defarr,
sizeof(
bool) * defarr_length);
2226 for (
int i = defarr_length; i < out_length; i++) {
2227 r_values[i] = defvalue;
2256 for (
uint i = 0; i < idprop->
len; i++) {
2257 values[i] = (
bool)values_src[i];
2295 value = tmparray[index];
2318 for (
uint i = 0; i < idprop->
len; i++) {
2319 values_dst[i] = (int)values[i];
2345 for (
uint i = 0; i < idprop->
len; i++) {
2346 values_dst[i] = (int)values[i];
2373 tmparray[index] = value;
2419 bool *tmparray, value;
2423 value = tmparray[index];
2464 else if (iprop->
set) {
2467 else if (iprop->
set_ex) {
2486 const int *defarr,
int defarr_length,
int defvalue,
int out_length,
int *r_values)
2488 if (defarr && defarr_length > 0) {
2489 defarr_length =
MIN2(defarr_length, out_length);
2490 memcpy(r_values, defarr,
sizeof(
int) * defarr_length);
2496 for (
int i = defarr_length; i < out_length; i++) {
2497 r_values[i] = defvalue;
2527 memcpy(values,
IDP_Array(idprop),
sizeof(
int) * idprop->
len);
2548 if (array_len <= 0) {
2552 else if (array_len == 1) {
2554 values[1] = values[0];
2561 if (array_len > 32) {
2562 arr =
MEM_mallocN(
sizeof(
int) * array_len, __func__);
2569 values[0] = values[1] = arr[0];
2570 for (i = 1; i < array_len; i++) {
2571 values[0] =
MIN2(values[0], arr[i]);
2572 values[1] =
MAX2(values[1], arr[i]);
2575 if (arr != arr_stack) {
2595 int *tmparray, value;
2599 value = tmparray[index];
2620 memcpy(
IDP_Array(idprop), values,
sizeof(
int) * idprop->
len);
2647 memcpy(
IDP_Array(idprop), values,
sizeof(
int) * idprop->
len);
2672 tmparray[index] = value;
2757 int *tmparray, value;
2761 value = tmparray[index];
2811 else if (fprop->
set) {
2814 else if (fprop->
set_ex) {
2833 const float *defarr,
int defarr_length,
float defvalue,
int out_length,
float *r_values)
2835 if (defarr && defarr_length > 0) {
2836 defarr_length =
MIN2(defarr_length, out_length);
2837 memcpy(r_values, defarr,
sizeof(
float) * defarr_length);
2843 for (
int i = defarr_length; i < out_length; i++) {
2844 r_values[i] = defvalue;
2852 const int default_array_len,
2853 const double default_value,
2854 const int out_length,
2857 const int array_copy_len =
MIN2(out_length, default_array_len);
2859 for (
int i = 0; i < array_copy_len; i++) {
2860 r_values[i] = (
float)default_array[i];
2863 for (
int i = array_copy_len; i < out_length; i++) {
2864 r_values[i] = (
float)default_value;
2895 memcpy(values,
IDP_Array(idprop),
sizeof(
float) * idprop->
len);
2898 for (i = 0; i < idprop->
len; i++) {
2921 if (array_len <= 0) {
2925 else if (array_len == 1) {
2927 values[1] = values[0];
2930 float arr_stack[32];
2934 if (array_len > 32) {
2935 arr =
MEM_mallocN(
sizeof(
float) * array_len, __func__);
2942 values[0] = values[1] = arr[0];
2943 for (i = 1; i < array_len; i++) {
2944 values[0] =
MIN2(values[0], arr[i]);
2945 values[1] =
MAX2(values[1], arr[i]);
2948 if (arr != arr_stack) {
2968 float *tmparray, value;
2972 value = tmparray[index];
2999 memcpy(
IDP_Array(idprop), values,
sizeof(
float) * idprop->
len);
3002 for (i = 0; i < idprop->
len; i++) {
3003 ((
double *)
IDP_Array(idprop))[i] = values[i];
3031 memcpy(
IDP_Array(idprop), values,
sizeof(
float) * idprop->
len);
3056 tmparray[index] = value;
3139 float *tmparray, value;
3143 value = tmparray[index];
3161 value[idprop->
len] =
'\0';
3167 else if (sprop->
get) {
3170 else if (sprop->
get_ex) {
3188 if (
length + 1 < fixedlen) {
3228 return idprop->
len - 1;
3251 else if (sprop->
set) {
3254 else if (sprop->
set_ex) {
3282 else if (sprop->
set) {
3286 else if (sprop->
set_ex) {
3336 if (
length + 1 < fixedlen) {
3393 const char *edit_text,
3395 void *visit_user_data)
3399 sprop->
search(
C,
ptr, prop, edit_text, visit_fn, visit_user_data);
3432 else if (eprop->
set) {
3435 else if (eprop->
set_ex) {
3466 int result_value = from_value;
3468 int single_step = (step < 0) ? -1 : 1;
3476 i =
mod_i(i + single_step, totitem);
3477 if (item_array[i].identifier[0]) {
3478 step_tot += single_step;
3480 }
while ((i != i_init) && (step_tot != step));
3483 result_value = item_array[i].
value;
3490 return result_value;
3549 "%s: expected %s type, not %s",
3561 "%s: expected ID type, not %s",
3569 if (idprop !=
NULL) {
3588 else if (pprop->
set) {
3591 pprop->
set(
ptr, ptr_value, reports);
3638 printf(
"%s %s.%s: only supported for id properties.\n",
3659 printf(
"%s %s.%s: only supported for id properties.\n",
3683 memset(iter, 0,
sizeof(*iter));
3734 if (!internal->skip) {
3735 internal->
ptr +=
internal->itemsize * (num - 1);
3736 iter->
valid = (
internal->ptr <
internal->endptr);
3745 for (i = 0; i < num && iter->
valid; i++) {
3792 bool test = iter.
valid;
3802 bool *r_is_liboverride)
3806 *r_is_liboverride =
false;
3812 if (!is_liboverride) {
3842 bool is_liboverride;
3845 memset(r_ptr, 0,
sizeof(*r_ptr));
3855 if (is_liboverride) {
3874 if (is_liboverride) {
3886 else if (cprop->add) {
3896 printf(
"%s %s.%s: not implemented for this property.\n",
3913 memset(r_ptr, 0,
sizeof(*r_ptr));
3925 bool is_liboverride;
3937 if (key >= 0 && key <
len) {
3943 if (key + 1 <
len) {
3961 else if (cprop->remove) {
3973 printf(
"%s %s.%s: only supported for id properties.\n",
3989 bool is_liboverride;
4001 if (key >= 0 && key < len && pos >= 0 &&
pos <
len && key !=
pos) {
4032 bool is_liboverride;
4038 if (is_liboverride) {
4042 for (
int i = 0; i <
len; i++) {
4124 memset(r_ptr, 0,
sizeof(*r_ptr));
4144 char name[256], *nameptr;
4146 int keylen = strlen(key);
4157 if ((keylen == namelen) &&
STREQ(nameptr, key)) {
4162 if ((
char *)&name != nameptr) {
4174 memset(r_ptr, 0,
sizeof(*r_ptr));
4248 array->stride =
internal->itemsize;
4249 array->len = ((
char *)internal->endptr - arrayp) /
internal->itemsize;
4261 #define RAW_GET(dtype, var, raw, a) \
4263 switch (raw.type) { \
4264 case PROP_RAW_CHAR: \
4265 var = (dtype)((char *)raw.array)[a]; \
4267 case PROP_RAW_SHORT: \
4268 var = (dtype)((short *)raw.array)[a]; \
4270 case PROP_RAW_INT: \
4271 var = (dtype)((int *)raw.array)[a]; \
4273 case PROP_RAW_BOOLEAN: \
4274 var = (dtype)((bool *)raw.array)[a]; \
4276 case PROP_RAW_FLOAT: \
4277 var = (dtype)((float *)raw.array)[a]; \
4279 case PROP_RAW_DOUBLE: \
4280 var = (dtype)((double *)raw.array)[a]; \
4288 #define RAW_SET(dtype, raw, a, var) \
4290 switch (raw.type) { \
4291 case PROP_RAW_CHAR: \
4292 ((char *)raw.array)[a] = (char)var; \
4294 case PROP_RAW_SHORT: \
4295 ((short *)raw.array)[a] = (short)var; \
4297 case PROP_RAW_INT: \
4298 ((int *)raw.array)[a] = (int)var; \
4300 case PROP_RAW_BOOLEAN: \
4301 ((bool *)raw.array)[a] = (bool)var; \
4303 case PROP_RAW_FLOAT: \
4304 ((float *)raw.array)[a] = (float)var; \
4306 case PROP_RAW_DOUBLE: \
4307 ((double *)raw.array)[a] = (double)var; \
4319 return sizeof(char);
4321 return sizeof(short);
4325 return sizeof(
bool);
4327 return sizeof(
float);
4345 for (
size = 1, i = 0; i < dim; i++) {
4355 const char *propname,
4401 int arraylen = (itemlen == 0) ? 1 : itemlen;
4402 if (in.
len != arraylen *
out.len) {
4405 "Array length mismatch (expected %d, got %d)",
4413 void *inp = in.
array;
4414 void *outp =
out.array;
4419 for (
a = 0;
a <
out.len;
a++) {
4421 memcpy(outp, inp,
size);
4424 memcpy(inp, outp,
size);
4427 inp = (
char *)inp +
size;
4428 outp = (
char *)outp +
out.stride;
4438 "Enum array properties should not exist");
4442 void *tmparray =
NULL;
4444 int err = 0, j,
a = 0;
4477 reports,
RPT_ERROR,
"Only boolean, int, float and enum properties supported");
4482 "Enum array properties should not exist");
4487 if (
a + itemlen > in.
len) {
4489 reports,
RPT_ERROR,
"Array length mismatch (got %d, expected more)", in.
len);
4556 else if (needconv == 1) {
4558 if (tmparray && tmplen != itemlen) {
4563 tmparray =
MEM_callocN(
sizeof(
float) * itemlen,
"RNA tmparray");
4571 for (j = 0; j < itemlen; j++,
a++) {
4572 RAW_GET(
bool, ((
bool *)tmparray)[j], in,
a);
4578 for (j = 0; j < itemlen; j++,
a++) {
4579 RAW_GET(
int, ((
int *)tmparray)[j], in,
a);
4585 for (j = 0; j < itemlen; j++,
a++) {
4586 RAW_GET(
float, ((
float *)tmparray)[j], in,
a);
4600 for (j = 0; j < itemlen; j++,
a++) {
4601 RAW_SET(
int, in,
a, ((
bool *)tmparray)[j]);
4607 for (j = 0; j < itemlen; j++,
a++) {
4608 RAW_SET(
int, in,
a, ((
int *)tmparray)[j]);
4614 for (j = 0; j < itemlen; j++,
a++) {
4615 RAW_SET(
float, in,
a, ((
float *)tmparray)[j]);
4689 switch (prop->
type) {
4708 const char *propname,
4719 const char *propname,
4736 internal->skip = skip;
4740 if (skip && iter->
valid && skip(iter, internal->link)) {
4749 if (internal->skip) {
4751 internal->
link =
internal->link->
next;
4753 }
while (iter->
valid && internal->skip(iter, internal->link));
4756 internal->link =
internal->link->next;
4765 return internal->
link;
4800 internal->free_ptr = free_ptr ?
ptr :
NULL;
4801 internal->endptr = ((
char *)
ptr) +
length * itemsize;
4802 internal->itemsize = itemsize;
4803 internal->skip = skip;
4804 internal->length =
length;
4806 iter->
valid = (
internal->ptr !=
internal->endptr);
4808 if (skip && iter->
valid && skip(iter, internal->
ptr)) {
4817 if (internal->skip) {
4819 internal->
ptr +=
internal->itemsize;
4820 iter->
valid = (
internal->ptr !=
internal->endptr);
4821 }
while (iter->
valid && internal->skip(iter, internal->
ptr));
4824 internal->ptr +=
internal->itemsize;
4825 iter->
valid = (
internal->ptr !=
internal->endptr);
4833 return internal->
ptr;
4841 return *(
void **)(internal->ptr);
4854 if (index < 0 || index >=
length) {
5037 printf(
"%s: %s.%s has no enum id '%s'.\n", __func__,
ptr->
type->
identifier, name,
id);
5069 printf(
"%s: %s.%s item %s not found.\n", __func__,
ptr->
type->
identifier, name, enumname);
5080 *r_value = item[i].
value;
5100 *r_icon = item[i].
icon;
5110 *r_name = item[i].
name;
5130 PointerRNA *
ptr,
const char *name,
char *fixedbuf,
int fixedlen,
int *r_len)
5138 if (r_len !=
NULL) {
5341 const char *propname;
5349 if (
STREQ(propname,
"rna_type")) {
5353 if (first_time == 0) {
5399 const bool as_function,
5400 const bool all_args,
5401 const bool nested_args,
5402 const int max_prop_length,
5405 const char *arg_name =
NULL;
5410 char *cstring, *buf;
5411 bool first_iter =
true;
5412 int flag, flag_parameter;
5415 prop = propptr.data;
5420 if (as_function && (flag_parameter &
PARM_OUTPUT)) {
5426 if (
STREQ(arg_name,
"rna_type")) {
5442 if (all_args ==
true) {
5479 const bool as_function,
5480 const bool all_args,
5481 const bool nested_args,
5482 const int max_prop_length)
5489 C,
ptr, as_function, all_args, nested_args, max_prop_length, iterprop);
5494 const bool as_function,
5495 const bool all_args,
5496 const int max_prop_length)
5508 C, &funcptr, as_function, all_args,
true, max_prop_length, iterprop);
5513 return var ?
"True" :
"False";
5519 void *buf_ret =
NULL;
5524 *r_buf_end = buf +
len;
5530 *r_buf_end = buf +
len;
5534 float *buf = buf_ret =
MEM_mallocN(
sizeof(*buf) *
len, __func__);
5536 *r_buf_end = buf +
len;
5549 const int end =
len - 1;
5553 for (
int i = 0; i <
len; i++, buf++) {
5561 for (
int i = 0; i <
len; i++, buf++) {
5568 float *buf = *buf_p;
5569 for (
int i = 0; i <
len; i++, buf++) {
5581 int type,
void **buf_p,
int totdim,
const int *dim_size,
DynStr *dynstr)
5586 const int end = dim_size[totdim] - 1;
5587 for (
int i = 0; i <= end; i++) {
5589 if (i < end || !end) {
5605 void *buf_step = buf;
5673 buf_esc =
MEM_mallocN(
sizeof(
char) * (
length * 2 + 1),
"RNA_property_as_string esc");
5683 const char *identifier;
5697 bool is_first =
true;
5738 (i < max_prop_length) && collect_iter.
valid;
5800 const char *identifier)
5805 for (; parm; parm = parm->
next) {
5833 int alloc_size = 0,
size;
5868 switch (parm->
type) {
5899 if (defvalue && defvalue[0]) {
5928 for (tot = 0; parm; parm = parm->
next) {
5935 if (data_alloc->
array) {
5969 iter->
parms = parms;
6004 if (iter.
parm == parm) {
6013 *value = data_alloc->
array;
6031 for (; parm; parm = parm->
next) {
6049 if (iter.
parm == parm) {
6059 switch (parm->
type) {
6061 size =
sizeof(char);
6074 if (data_alloc->
array) {
6081 memcpy(iter.
data, value, iter.
size);
6093 for (; parm; parm = parm->
next) {
6112 if (iter.
parm == parm) {
6133 if (iter.
parm == parm) {
6169 func->
call(
C, reports,
ptr, parms);
6180 const char *identifier,
6212 const char *identifier,
6241 if (
format[ofs++] ==
'[') {
6242 for (; ofs < flen &&
format[ofs] !=
']' && idx <
sizeof(lenbuf) - 1; idx++, ofs++) {
6243 lenbuf[idx] =
format[ofs];
6247 if (ofs < flen &&
format[ofs + 1] ==
']') {
6250 return atoi(lenbuf);
6274 stderr,
"%s.%s: wrong type for parameter %s, a boolean was expected\n", tid, fid, pid);
6279 *((
bool *)
dest) = *((
bool *)
src);
6290 "%s.%s: wrong type for parameter %s, an integer was expected\n",
6298 *((
int *)
dest) = *((
int *)
src);
6309 stderr,
"%s.%s: wrong type for parameter %s, a float was expected\n", tid, fid, pid);
6314 *((
float *)
dest) = *((
float *)
src);
6325 stderr,
"%s.%s: wrong type for parameter %s, a string was expected\n", tid, fid, pid);
6329 *((
char **)
dest) = *((
char **)
src);
6336 stderr,
"%s.%s: wrong type for parameter %s, an enum was expected\n", tid, fid, pid);
6340 *((
int *)
dest) = *((
int *)
src);
6349 stderr,
"%s.%s: wrong type for parameter %s, an object was expected\n", tid, fid, pid);
6362 "%s.%s: wrong type for parameter %s, "
6363 "an object of type %s was expected, passed an object of type %s\n",
6372 *((
void **)
dest) = *((
void **)
src);
6384 "%s.%s: wrong type for parameter %s, a collection was expected\n",
6397 "%s.%s: wrong type for parameter %s, "
6398 "a collection of objects of type %s was expected, "
6399 "passed a collection of objects of type %s\n",
6408 for (link = lb->
first; link; link = link->
next) {
6418 fprintf(stderr,
"%s.%s: unknown type for parameter %s\n", tid, fid, pid);
6421 fprintf(stderr,
"%s.%s: unknown array type for parameter %s\n", tid, fid, pid);
6443 int i, ofs, flen, flag_parameter,
len, alen,
err = 0;
6444 const char *tid, *fid, *pid =
NULL;
6446 void **retdata =
NULL;
6463 retdata = iter.
data;
6472 if (ofs >= flen ||
format[ofs] ==
'N') {
6475 fprintf(stderr,
"%s.%s: missing required parameter %s\n", tid, fid, pid);
6490 "%s.%s: for parameter %s, "
6491 "was expecting an array of %i elements, "
6492 "passed %i elements instead\n",
6505 int arg = va_arg(args,
int);
6507 &funcptr, parm,
type, ftype,
len, iter.
data, &arg,
NULL, tid, fid, pid);
6511 double arg = va_arg(args,
double);
6513 &funcptr, parm,
type, ftype,
len, iter.
data, &arg,
NULL, tid, fid, pid);
6517 const char *arg = va_arg(args,
char *);
6519 &funcptr, parm,
type, ftype,
len, iter.
data, &arg,
NULL, tid, fid, pid);
6524 void *arg = va_arg(args,
void *);
6526 &funcptr, parm,
type, ftype,
len, iter.
data, &arg, srna, tid, fid, pid);
6533 &funcptr, parm,
type, ftype,
len, iter.
data, &arg, srna, tid, fid, pid);
6539 &funcptr, parm,
type, ftype,
len, iter.
data,
NULL,
NULL, tid, fid, pid);
6554 if (
err == 0 && pret && ofs < flen &&
format[ofs++] ==
'R') {
6565 "%s.%s: for return parameter %s, "
6566 "was expecting an array of %i elements, passed %i elements instead\n",
6578 int *arg = va_arg(args,
int *);
6580 &funcptr, parm,
type, ftype,
len, arg, retdata,
NULL, tid, fid, pid);
6584 float *arg = va_arg(args,
float *);
6586 &funcptr, parm,
type, ftype,
len, arg, retdata,
NULL, tid, fid, pid);
6590 char **arg = va_arg(args,
char **);
6592 &funcptr, parm,
type, ftype,
len, arg, retdata,
NULL, tid, fid, pid);
6597 void **arg = va_arg(args,
void **);
6599 &funcptr, parm,
type, ftype,
len, arg, retdata, srna, tid, fid, pid);
6606 &funcptr, parm,
type, ftype,
len, arg, retdata, srna, tid, fid, pid);
6612 &funcptr, parm,
type, ftype,
len,
NULL,
NULL,
NULL, tid, fid, pid);
6628 const char *identifier,
6661 bool *tmparray =
MEM_callocN(
sizeof(
bool) *
len,
"reset_defaults - boolean");
6681 int *tmparray =
MEM_callocN(
sizeof(
int) *
len,
"reset_defaults - int");
6701 float *tmparray =
MEM_callocN(
sizeof(
float) *
len,
"reset_defaults - float");
6777 fputc(
'\n', stdout);
6790 const int prop_index,
6795 if ((array_len == 0) || (prop_index < array_len)) {
6797 r_anim_rna->
prop = prop;
6798 r_anim_rna->
prop_index = array_len ? prop_index : -1;
typedef float(TangentPoint)[2]
bool id_can_have_animdata(const struct ID *id)
struct Scene * CTX_data_scene(const bContext *C)
struct wmMsgBus * CTX_wm_message_bus(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct FCurve * BKE_fcurve_find_by_rna(struct PointerRNA *ptr, struct PropertyRNA *prop, int rnaindex, struct AnimData **r_adt, struct bAction **r_action, bool *r_driven, bool *r_special)
#define IDP_IDPArray(prop)
void IDP_AssignID(struct IDProperty *prop, struct ID *id, int flag)
void IDP_AppendArray(struct IDProperty *prop, struct IDProperty *item)
struct IDPropertyUIData * IDP_ui_data_ensure(struct IDProperty *prop)
void IDP_ReplaceInGroup(struct IDProperty *group, struct IDProperty *prop) ATTR_NONNULL()
struct IDProperty * IDP_GetIndexArray(struct IDProperty *prop, int index) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct IDProperty * IDP_New(char type, const IDPropertyTemplate *val, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct IDProperty * IDP_NewIDPArray(const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_ReplaceInGroup_ex(struct IDProperty *group, struct IDProperty *prop, struct IDProperty *prop_exist)
struct IDProperty * IDP_NewString(const char *st, const char *name, int maxlen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(2)
void IDP_ResizeIDPArray(struct IDProperty *prop, int len)
void IDP_ResizeArray(struct IDProperty *prop, int newlen)
bool IDP_AddToGroup(struct IDProperty *group, struct IDProperty *prop) ATTR_NONNULL()
struct IDProperty * IDP_GetPropertyFromGroup(const struct IDProperty *prop, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_AssignString(struct IDProperty *prop, const char *st, int maxlen) ATTR_NONNULL()
void IDP_FreeFromGroup(struct IDProperty *group, struct IDProperty *prop) ATTR_NONNULL()
bool BKE_lib_override_library_is_system_defined(const struct Main *bmain, const struct ID *id)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
#define BLI_assert_unreachable()
#define BLI_assert_msg(a, msg)
A dynamically sized string ADT.
DynStr * BLI_dynstr_new(void) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
char * BLI_dynstr_get_cstring(const DynStr *ds) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BLI_dynstr_free(DynStr *ds) ATTR_NONNULL()
void BLI_dynstr_appendf(DynStr *__restrict ds, const char *__restrict format,...) ATTR_PRINTF_FORMAT(2
void BLI_dynstr_append(DynStr *__restrict ds, const char *cstr) ATTR_NONNULL()
GHash * BLI_ghash_str_new_ex(const char *info, unsigned int nentries_reserve) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
GHash * BLI_ghash_str_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(const GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
void BLI_kdtree_nd_() free(KDTree *tree)
void * BLI_findstring_ptr(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE float max_ff(float a, float b)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
MINLINE int mod_i(int i, int n)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL()
#define BLI_MUTEX_INITIALIZER
void BLI_mutex_lock(ThreadMutex *mutex)
void BLI_mutex_unlock(ThreadMutex *mutex)
pthread_mutex_t ThreadMutex
bool BLT_translate_iface(void)
bool BLT_translate_tooltips(void)
#define CTX_IFACE_(context, msgid)
const char * BLT_pgettext(const char *msgctxt, const char *msgid)
typedef double(DMatrix)[4][4]
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
ID and Library types, which are fundamental for sdna.
#define ID_TYPE_IS_COW(_id_type)
@ ID_RECALC_COPY_ON_WRITE
@ IDP_FLAG_OVERRIDELIBRARY_LOCAL
#define ID_IS_LINKED(_id)
#define ID_IS_OVERRIDE_LIBRARY(_id)
Object is a sort of wrapper for general info.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
#define RNA_STRUCT_BEGIN(sptr, prop)
#define RNA_PROP_BEGIN(sptr, itemptr, prop)
#define RNA_MAX_ARRAY_LENGTH
#define RNA_MAX_ARRAY_DIMENSION
struct StructRNA *(* StructRegisterFunc)(struct Main *bmain, struct ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
@ STRUCT_NO_CONTEXT_WITHOUT_OWNER_ID
@ STRUCT_PUBLIC_NAMESPACE
@ STRUCT_NO_DATABLOCK_IDPROPERTIES
@ STRUCT_CONTAINS_DATABLOCK_IDPROPERTIES
eStringPropertySearchFlag
@ PROP_STRING_SEARCH_SUPPORTED
void(* StringPropertySearchVisitFunc)(void *visit_user_data, const StringPropertySearchVisitParams *params)
struct EnumPropertyItem EnumPropertyItem
#define RNA_SUBTYPE_UNIT(subtype)
@ PROPOVERRIDE_LIBRARY_INSERTION
void(* StructUnregisterFunc)(struct Main *bmain, struct StructRNA *type)
@ PROP_CONTEXT_PROPERTY_UPDATE
int(* IteratorSkipFunc)(struct CollectionPropertyIterator *iter, void *data)
int main(int argc, char *argv[])
return(oflags[bm->toolflag_index].f &oflag) !=0
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SyclQueue void void * src
ccl_gpu_kernel_postfix ccl_global int * counter
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRefNull prop_name, int32_t value)
Allocate a new IDProperty of type IDP_INT, set its name and value.
T length(const vec_base< T, Size > &a)
static const pxr::TfToken out("out", pxr::TfToken::Immortal)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
StructUnregisterFunc RNA_struct_unregister(StructRNA *type)
float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_collection_lookup_int_has_fn(PropertyRNA *prop)
void RNA_boolean_set_array(PointerRNA *ptr, const char *name, const bool *values)
bool RNA_property_enum_value(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *identifier, int *r_value)
StructRegisterFunc RNA_struct_register(StructRNA *type)
int RNA_function_call_direct_lookup(bContext *C, ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format,...)
bool RNA_property_enum_item_from_value(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, EnumPropertyItem *r_item)
const char * RNA_struct_identifier(const StructRNA *type)
void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
bool RNA_property_editable(PointerRNA *ptr, PropertyRNA *prop)
int RNA_enum_bitflag_identifiers(const EnumPropertyItem *item, const int value, const char **r_identifier)
static void rna_property_float_fill_default_array_values_double(const double *default_array, const int default_array_len, const double default_value, const int out_length, float *r_values)
void RNA_int_set_array(PointerRNA *ptr, const char *name, const int *values)
const char * RNA_function_identifier(FunctionRNA *func)
void RNA_property_string_search(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, StringPropertySearchVisitFunc visit_fn, void *visit_user_data)
void RNA_property_boolean_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, bool value)
void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value)
IDProperty ** RNA_struct_idprops_p(PointerRNA *ptr)
FunctionRNA * RNA_struct_find_function(StructRNA *srna, const char *identifier)
void RNA_property_int_ui_range(PointerRNA *ptr, PropertyRNA *prop, int *softmin, int *softmax, int *step)
const char * RNA_property_description(PropertyRNA *prop)
bool RNA_property_update_check(PropertyRNA *prop)
bool RNA_property_array_check(PropertyRNA *prop)
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
int RNA_property_collection_lookup_string_index(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr, int *r_index)
int RNA_function_call_direct_va(bContext *C, ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format, va_list args)
bool RNA_property_is_unlink(PropertyRNA *prop)
void rna_property_rna_or_id_get(PropertyRNA *prop, PointerRNA *ptr, PropertyRNAOrID *r_prop_rna_or_id)
const struct ListBase * RNA_struct_type_properties(StructRNA *srna)
static void rna_property_int_fill_default_array_values(const int *defarr, int defarr_length, int defvalue, int out_length, int *r_values)
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
bool RNA_property_assign_default(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * rna_ensure_property(PropertyRNA *prop)
int RNA_function_call_direct_va_lookup(bContext *C, ReportList *reports, PointerRNA *ptr, const char *identifier, const char *format, va_list args)
PropertyScaleType RNA_property_ui_scale(PropertyRNA *prop)
void RNA_struct_state_owner_set(const char *name)
bool RNA_property_int_set_default(PropertyRNA *prop, int value)
void RNA_struct_py_type_set(StructRNA *srna, void *py_type)
void rna_iterator_array_end(CollectionPropertyIterator *iter)
void RNA_int_get_array(PointerRNA *ptr, const char *name, int *values)
bool RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_boolean_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index)
IDProperty * rna_idproperty_check(PropertyRNA **prop, PointerRNA *ptr)
static void rna_property_int_get_default_array_values(PointerRNA *ptr, IntPropertyRNA *iprop, int *r_values)
bool RNA_property_float_set_default(PropertyRNA *prop, float value)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
static void rna_property_float_get_default_array_values(PointerRNA *ptr, FloatPropertyRNA *fprop, float *r_values)
static void rna_idproperty_free(PointerRNA *ptr, const char *name)
PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name)
int RNA_collection_length(PointerRNA *ptr, const char *name)
int RNA_enum_from_name(const EnumPropertyItem *item, const char *name)
int RNA_property_int_clamp(PointerRNA *ptr, PropertyRNA *prop, int *value)
int RNA_parameter_dynamic_length_get_data(ParameterList *UNUSED(parms), PropertyRNA *parm, void *data)
int RNA_property_float_clamp(PointerRNA *ptr, PropertyRNA *prop, float *value)
void RNA_parameter_get_lookup(ParameterList *parms, const char *identifier, void **value)
void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value)
char * RNA_property_as_string(bContext *C, PointerRNA *ptr, PropertyRNA *prop, int index, int max_prop_length)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
void RNA_boolean_get_array(PointerRNA *ptr, const char *name, bool *values)
bool RNA_struct_available_or_report(ReportList *reports, const char *identifier)
bool RNA_enum_is_equal(bContext *C, PointerRNA *ptr, const char *name, const char *enumname)
void ** RNA_struct_instance(PointerRNA *ptr)
void RNA_property_string_get_default(PropertyRNA *prop, char *value, const int max_len)
bool RNA_struct_is_ID(const StructRNA *type)
int RNA_property_int_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
const char * RNA_property_identifier(const PropertyRNA *prop)
const char * RNA_property_ui_description_raw(const PropertyRNA *prop)
void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision)
void RNA_property_float_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, float value)
static void rna_array_as_string_recursive(int type, void **buf_p, int totdim, const int *dim_size, DynStr *dynstr)
PropertyRNA * rna_struct_find_nested(PointerRNA *ptr, StructRNA *srna)
bool RNA_enum_value_from_id(const EnumPropertyItem *item, const char *identifier, int *r_value)
char * RNA_pointer_as_string_keywords(bContext *C, PointerRNA *ptr, const bool as_function, const bool all_args, const bool nested_args, const int max_prop_length)
static void rna_property_boolean_get_default_array_values(PointerRNA *ptr, BoolPropertyRNA *bprop, bool *r_values)
eStringPropertySearchFlag RNA_property_string_search_flag(PropertyRNA *prop)
bool RNA_property_collection_is_empty(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop)
PropertyUnit RNA_property_unit(PropertyRNA *prop)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
int RNA_function_defined(FunctionRNA *func)
int RNA_property_ui_icon(const PropertyRNA *prop)
ParameterList * RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSED(ptr), FunctionRNA *func)
int RNA_property_collection_lookup_index(PointerRNA *ptr, PropertyRNA *prop, const PointerRNA *t_ptr)
void RNA_collection_clear(PointerRNA *ptr, const char *name)
bool RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index)
void RNA_parameter_dynamic_length_set(ParameterList *parms, PropertyRNA *parm, int length)
int RNA_property_collection_assign_int(PointerRNA *ptr, PropertyRNA *prop, const int key, const PointerRNA *assign_ptr)
static const char * rna_ensure_property_name(const PropertyRNA *prop)
const char * RNA_struct_ui_description(const StructRNA *type)
void RNA_blender_rna_pointer_create(PointerRNA *r_ptr)
char * RNA_struct_name_get_alloc(PointerRNA *ptr, char *fixedbuf, int fixedlen, int *r_len)
bool RNA_collection_is_empty(PointerRNA *ptr, const char *name)
float RNA_property_float_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value, ReportList *reports)
void _RNA_warning(const char *format,...)
void RNA_boolean_set(PointerRNA *ptr, const char *name, bool value)
void RNA_parameter_dynamic_length_set_data(ParameterList *UNUSED(parms), PropertyRNA *parm, void *data, int length)
void RNA_property_collection_skip(CollectionPropertyIterator *iter, int num)
#define RAW_GET(dtype, var, raw, a)
float RNA_property_float_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index)
void RNA_pointer_add(PointerRNA *ptr, const char *name)
int RNA_enum_from_identifier(const EnumPropertyItem *item, const char *identifier)
int RNA_property_collection_raw_get(ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len)
bool RNA_property_is_set_ex(PointerRNA *ptr, PropertyRNA *prop, bool use_ghost)
static void * rna_array_as_string_alloc(int type, int len, PointerRNA *ptr, PropertyRNA *prop, void **r_buf_end)
void RNA_parameter_set(ParameterList *parms, PropertyRNA *parm, const void *value)
bool RNA_struct_property_is_set_ex(PointerRNA *ptr, const char *identifier, bool use_ghost)
int RNA_property_enum_bitflag_identifiers(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
const char * RNA_struct_ui_name(const StructRNA *type)
void RNA_property_collection_begin(PointerRNA *ptr, PropertyRNA *prop, CollectionPropertyIterator *iter)
bool RNA_enum_icon_from_value(const EnumPropertyItem *item, int value, int *r_icon)
void RNA_property_float_range(PointerRNA *ptr, PropertyRNA *prop, float *hardmin, float *hardmax)
void rna_iterator_listbase_end(CollectionPropertyIterator *UNUSED(iter))
PropertyRNA * RNA_struct_type_find_property_no_base(StructRNA *srna, const char *identifier)
void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, bool *values)
PropertyType RNA_property_type(PropertyRNA *prop)
const PointerRNA PointerRNA_NULL
const char * RNA_function_ui_description_raw(FunctionRNA *func)
void RNA_property_pointer_add(PointerRNA *ptr, PropertyRNA *prop)
static PropertyRNA * arraytypemap[IDP_NUMTYPES]
PropertyRNA * rna_ensure_property_realdata(PropertyRNA **prop, PointerRNA *ptr)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
void RNA_property_enum_set(PointerRNA *ptr, PropertyRNA *prop, int value)
void * RNA_struct_blender_type_get(StructRNA *srna)
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
int RNA_property_collection_lookup_int(PointerRNA *ptr, PropertyRNA *prop, int key, PointerRNA *r_ptr)
char RNA_property_array_item_char(PropertyRNA *prop, int index)
int RNA_property_enum_step(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, int from_value, int step)
void RNA_parameter_list_free(ParameterList *parms)
bool RNA_property_enum_name_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name)
bool RNA_struct_contains_property(PointerRNA *ptr, PropertyRNA *prop_test)
bool RNA_property_boolean_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
void rna_idproperty_touch(IDProperty *idprop)
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
static char * rna_pointer_as_string__bldata(Main *bmain, PointerRNA *ptr)
static int rna_function_parameter_parse(PointerRNA *ptr, PropertyRNA *prop, PropertyType type, char ftype, int len, void *dest, const void *src, StructRNA *srna, const char *tid, const char *fid, const char *pid)
unsigned int RNA_struct_count_properties(StructRNA *srna)
void rna_iterator_listbase_begin(CollectionPropertyIterator *iter, ListBase *lb, IteratorSkipFunc skip)
int RNA_property_int_get_default_index(PointerRNA *ptr, PropertyRNA *prop, int index)
char * RNA_pointer_as_string(bContext *C, PointerRNA *ptr, PropertyRNA *prop_ptr, PointerRNA *ptr_prop)
PointerRNA rna_array_lookup_int(PointerRNA *ptr, StructRNA *type, void *data, int itemsize, int length, int index)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
char * RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
void RNA_property_float_get_array_range(PointerRNA *ptr, PropertyRNA *prop, float values[2])
void RNA_property_boolean_get_default_array(PointerRNA *ptr, PropertyRNA *prop, bool *values)
bool RNA_struct_idprops_contains_datablock(const StructRNA *type)
void RNA_property_int_set_index(PointerRNA *ptr, PropertyRNA *prop, int index, int value)
static const char * rna_ensure_property_description(const PropertyRNA *prop)
static const char * bool_as_py_string(const int var)
unsigned int RNA_enum_items_count(const EnumPropertyItem *item)
static int rna_property_array_length_all_dimensions(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_enum_items_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
bool RNA_enum_id_from_value(const EnumPropertyItem *item, int value, const char **r_identifier)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
void RNA_pointer_recast(PointerRNA *ptr, PointerRNA *r_ptr)
int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_enum_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
IDProperty * RNA_struct_idprops(PointerRNA *ptr, bool create)
void RNA_property_collection_next(CollectionPropertyIterator *iter)
static void rna_array_as_string(int type, int len, PointerRNA *ptr, PropertyRNA *prop, DynStr *dynstr)
PointerRNA rna_listbase_lookup_int(PointerRNA *ptr, StructRNA *type, struct ListBase *lb, int index)
void RNA_collection_add(PointerRNA *ptr, const char *name, PointerRNA *r_value)
void RNA_parameter_list_next(ParameterIterator *iter)
static char rna_struct_state_owner[64]
void RNA_enum_set_identifier(bContext *C, PointerRNA *ptr, const char *name, const char *id)
const char * RNA_property_translation_context(const PropertyRNA *prop)
bool RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_collection_lookup_string(PointerRNA *ptr, PropertyRNA *prop, const char *key, PointerRNA *r_ptr)
const char * RNA_struct_ui_name_raw(const StructRNA *type)
static bool rna_idproperty_verify_valid(PointerRNA *ptr, PropertyRNA *prop, IDProperty *idprop)
static const char * rna_ensure_property_identifier(const PropertyRNA *prop)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
static void rna_property_float_fill_default_array_values(const float *defarr, int defarr_length, float defvalue, int out_length, float *r_values)
int RNA_int_get(PointerRNA *ptr, const char *name)
static void rna_ensure_property_multi_array_length(const PointerRNA *ptr, PropertyRNA *prop, int length[])
PointerRNA RNA_property_pointer_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop))
int RNA_property_array_dimension(const PointerRNA *ptr, PropertyRNA *prop, int length[])
bool RNA_enum_name_from_value(const EnumPropertyItem *item, int value, const char **r_name)
PropertyRNA * RNA_struct_type_find_property(StructRNA *srna, const char *identifier)
void RNA_parameter_get(ParameterList *parms, PropertyRNA *parm, void **value)
StructRNA * RNA_struct_find(const char *identifier)
void RNA_property_string_get(PointerRNA *ptr, PropertyRNA *prop, char *value)
void RNA_parameter_list_end(ParameterIterator *UNUSED(iter))
int RNA_function_flag(FunctionRNA *func)
PropertyRNA * RNA_function_get_parameter(PointerRNA *UNUSED(ptr), FunctionRNA *func, int index)
bool RNA_property_editable_info(PointerRNA *ptr, PropertyRNA *prop, const char **r_info)
StructRNA * RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_update_main(Main *bmain, Scene *scene, PointerRNA *ptr, PropertyRNA *prop)
void * rna_iterator_array_get(CollectionPropertyIterator *iter)
bool RNA_property_pointer_poll(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *value)
int RNA_property_flag(PropertyRNA *prop)
RawPropertyType RNA_property_raw_type(PropertyRNA *prop)
int RNA_struct_ui_icon(const StructRNA *type)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
float RNA_float_get(PointerRNA *ptr, const char *name)
bool RNA_property_builtin(PropertyRNA *prop)
int RNA_property_string_default_length(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
void RNA_property_int_get_array_range(PointerRNA *ptr, PropertyRNA *prop, int values[2])
void rna_iterator_listbase_next(CollectionPropertyIterator *iter)
bool RNA_property_enum_identifier(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **identifier)
static void rna_array_as_string_elem(int type, void **buf_p, int len, DynStr *dynstr)
int RNA_parameter_list_arg_count(const ParameterList *parms)
bool RNA_struct_idprops_register_check(const StructRNA *type)
void RNA_parameter_set_lookup(ParameterList *parms, const char *identifier, const void *value)
void RNA_property_string_set_bytes(PointerRNA *ptr, PropertyRNA *prop, const char *value, int len)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
int RNA_property_int_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
int RNA_string_length(PointerRNA *ptr, const char *name)
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
char * RNA_string_get_alloc(PointerRNA *ptr, const char *name, char *fixedbuf, int fixedlen, int *r_len)
static PropertyRNA * typemap[IDP_NUMTYPES]
const EnumPropertyItem * RNA_struct_property_tag_defines(const StructRNA *type)
PropertyRNA * RNA_struct_name_property(const StructRNA *type)
int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, PropertyRNA *itemprop, RawArray *array)
bool RNA_property_enum_item_from_value_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, EnumPropertyItem *r_item)
bool RNA_struct_undo_check(const StructRNA *type)
void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter)
void RNA_struct_property_unset(PointerRNA *ptr, const char *identifier)
void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr)
bool RNA_pointer_is_null(const PointerRNA *ptr)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_enum_description(const EnumPropertyItem *item, const int value, const char **r_description)
static int rna_ensure_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_enum_name(const EnumPropertyItem *item, const int value, const char **r_name)
int RNA_function_call_lookup(bContext *C, ReportList *reports, PointerRNA *ptr, const char *identifier, ParameterList *parms)
bool RNA_property_is_idprop(const PropertyRNA *prop)
static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_string_maxlength(PropertyRNA *prop)
void RNA_property_enum_items_gettexted_all(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
bool RNA_struct_idprops_datablock_allowed(const StructRNA *type)
const ListBase * RNA_function_defined_parameters(FunctionRNA *func)
void RNA_property_float_set_array(PointerRNA *ptr, PropertyRNA *prop, const float *values)
void RNA_property_int_set_array(PointerRNA *ptr, PropertyRNA *prop, const int *values)
void RNA_property_int_get_default_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
static bool property_collection_liboverride_editable(PointerRNA *ptr, PropertyRNA *prop, bool *r_is_liboverride)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
void rna_iterator_array_next(CollectionPropertyIterator *iter)
void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
bool RNA_property_collection_move(PointerRNA *ptr, PropertyRNA *prop, int key, int pos)
int RNA_enum_from_value(const EnumPropertyItem *item, const int value)
char * RNA_pointer_as_string_id(bContext *C, PointerRNA *ptr)
PropertySubType RNA_property_subtype(PropertyRNA *prop)
const char * RNA_struct_translation_context(const StructRNA *type)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
int RNA_parameter_list_ret_count(const ParameterList *parms)
void * RNA_struct_py_type_get(StructRNA *srna)
IDProperty * rna_idproperty_find(PointerRNA *ptr, const char *name)
void RNA_property_int_range(PointerRNA *ptr, PropertyRNA *prop, int *hardmin, int *hardmax)
int RNA_function_call_direct(bContext *C, ReportList *reports, PointerRNA *ptr, FunctionRNA *func, const char *format,...)
bool RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_function_call(bContext *C, ReportList *reports, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms)
int RNA_parameter_dynamic_length_get(ParameterList *parms, PropertyRNA *parm)
void RNA_property_enum_items(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
static void rna_pointer_inherit_id(StructRNA *type, PointerRNA *parent, PointerRNA *ptr)
void RNA_property_collection_clear(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_function_find_parameter(PointerRNA *UNUSED(ptr), FunctionRNA *func, const char *identifier)
int RNA_property_tags(PropertyRNA *prop)
bool RNA_enum_identifier(const EnumPropertyItem *item, const int value, const char **r_identifier)
static bool rna_ensure_property_array_check(PropertyRNA *prop)
bool RNA_property_collection_type_get(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr)
void RNA_property_collection_end(CollectionPropertyIterator *iter)
bool RNA_property_collection_lookup_string_has_fn(PropertyRNA *prop)
bool RNA_struct_idprops_check(StructRNA *srna)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
int RNA_property_array_item_index(PropertyRNA *prop, char name)
static void rna_property_boolean_fill_default_array_values(const bool *defarr, int defarr_length, bool defvalue, int out_length, bool *r_values)
bool RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
const ListBase * RNA_struct_type_functions(StructRNA *srna)
char * RNA_property_string_get_default_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
bool RNA_struct_bl_idname_ok_or_report(ReportList *reports, const char *identifier, const char *sep)
bool RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key)
int RNA_enum_get(PointerRNA *ptr, const char *name)
bool RNA_path_resolved_create(PointerRNA *ptr, struct PropertyRNA *prop, const int prop_index, PathResolvedRNA *r_anim_rna)
void RNA_main_pointer_create(struct Main *main, PointerRNA *r_ptr)
const char * RNA_struct_state_owner_get(void)
#define RAW_SET(dtype, raw, a, var)
void RNA_property_unset(PointerRNA *ptr, PropertyRNA *prop)
char * RNA_function_as_string_keywords(bContext *C, FunctionRNA *func, const bool as_function, const bool all_args, const int max_prop_length)
void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter)
void * rna_iterator_array_dereference_get(CollectionPropertyIterator *iter)
void RNA_property_pointer_remove(PointerRNA *ptr, PropertyRNA *prop)
PropertyRNA * RNA_struct_iterator_property(StructRNA *type)
int RNA_property_string_length(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_enum_items_ex(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const bool use_static, const EnumPropertyItem **r_item, int *r_totitem, bool *r_free)
bool RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, const int index)
const char * RNA_translate_ui_text(const char *text, const char *text_ctxt, StructRNA *type, PropertyRNA *prop, int translate)
int RNA_parameter_list_size(const ParameterList *parms)
float RNA_property_float_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *prop)
int RNA_parameter_flag(PropertyRNA *prop)
int RNA_raw_type_sizeof(RawPropertyType type)
const char * RNA_function_ui_description(FunctionRNA *func)
int RNA_property_collection_raw_set(ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *array, RawPropertyType type, int len)
bool RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop)
void * rna_iterator_listbase_get(CollectionPropertyIterator *iter)
const char * RNA_property_ui_name_raw(const PropertyRNA *prop)
const char * RNA_struct_ui_description_raw(const StructRNA *type)
const char * RNA_property_ui_description(const PropertyRNA *prop)
const StructRNA * RNA_struct_base_child_of(const StructRNA *type, const StructRNA *parent_type)
char * RNA_pointer_as_string_keywords_ex(bContext *C, PointerRNA *ptr, const bool as_function, const bool all_args, const bool nested_args, const int max_prop_length, PropertyRNA *iterprop)
int RNA_property_multi_array_length(PointerRNA *ptr, PropertyRNA *prop, int dim)
static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *prop, const char *propname, void *inarray, RawPropertyType intype, int inlen, int set)
static bool rna_property_editable_do(PointerRNA *ptr, PropertyRNA *prop_orig, const int index, const char **r_info)
int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const bool *values)
void * RNA_property_py_data_get(PropertyRNA *prop)
const char * RNA_property_ui_name(const PropertyRNA *prop)
StructRNA * RNA_struct_base(StructRNA *type)
void RNA_property_string_set(PointerRNA *ptr, PropertyRNA *prop, const char *value)
bool RNA_property_enum_name(bContext *C, PointerRNA *ptr, PropertyRNA *prop, const int value, const char **name)
static int rna_function_format_array_length(const char *format, int ofs, int flen)
static void rna_property_collection_get_idp(CollectionPropertyIterator *iter)
bool RNA_property_overridable_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_free(BlenderRNA *brna)
int rna_parameter_size(PropertyRNA *parm)
int rna_parameter_size_pad(const int size)
const char * rna_translate_ui_text(const char *text, const char *text_ctxt, struct StructRNA *type, struct PropertyRNA *prop, bool translate)
struct StructRNA * rna_ID_refine(struct PointerRNA *ptr)
void(* ContextUpdateFunc)(struct bContext *C, struct PointerRNA *ptr)
void(* ContextPropUpdateFunc)(struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop)
bool(* PropPointerPollFuncPy)(struct PointerRNA *ptr, const PointerRNA value, const PropertyRNA *prop)
char * RNA_path_full_struct_py(Main *bmain, const PointerRNA *ptr)
char * RNA_path_full_ID_py(Main *bmain, ID *id)
char * RNA_path_from_ID_to_property(const PointerRNA *ptr, PropertyRNA *prop)
bool RNA_path_resolve_property(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
bool RNA_path_resolve(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)
struct GHash * structs_map
PropBooleanArraySetFuncEx setarray_ex
PropBooleanArrayGetFuncEx getarray_ex
PropBooleanArraySetFunc setarray
const bool * defaultarray
PropBooleanSetFuncEx set_ex
PropBooleanGetFuncEx get_ex
PropBooleanArrayGetFunc getarray
ListBaseIterator listbase
union CollectionPropertyIterator::@1147 internal
struct PropertyRNA * prop
PropCollectionNextFunc next
PropCollectionLookupStringFunc lookupstring
PropCollectionLengthFunc length
struct StructRNA * item_type
PropCollectionLookupIntFunc lookupint
PropCollectionBeginFunc begin
PropCollectionAssignIntFunc assignint
PropCollectionEndFunc end
const EnumPropertyItem * item
PropFloatSetFuncEx set_ex
PropertyScaleType ui_scale_type
PropFloatRangeFuncEx range_ex
PropFloatArrayGetFuncEx getarray_ex
PropFloatArraySetFuncEx setarray_ex
PropFloatArrayGetFunc getarray
const float * defaultarray
PropFloatArraySetFunc setarray
PropFloatGetFuncEx get_ex
IDPropertyUIData * ui_data
PropIntRangeFuncEx range_ex
PropIntArrayGetFunc getarray
PropIntArrayGetFuncEx getarray_ex
PropIntArraySetFunc setarray
PropIntArraySetFuncEx setarray_ex
PropertyScaleType ui_scale_type
struct ParameterList * parms
struct FunctionRNA * func
struct PropertyRNA * prop
PropPointerTypeFunc type_fn
ItemEditableFunc itemeditable
PropArrayLengthGetFunc getlength
const char * translation_context
unsigned int arraydimension
struct PropertyRNA * next
unsigned int arraylength[RNA_MAX_ARRAY_DIMENSION]
unsigned int totarraylength
const char * defaultvalue
PropStringLengthFuncEx length_ex
PropStringLengthFunc length
PropStringGetFuncEx get_ex
PropStringSetFuncEx set_ex
StringPropertySearchFunc search
eStringPropertySearchFlag search_flag
PropertyRNA * nameproperty
IDPropertiesFunc idproperties
struct IDPropertyTemplate::@27 array
struct IDPropertyTemplate::@26 string
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_msg_publish_rna(struct wmMsgBus *mbus, PointerRNA *ptr, PropertyRNA *prop)