40# define ASSERT_SOFT_HARD_LIMITS \
41 if (softmin < hardmin || softmax > hardmax) { \
42 CLOG_ERROR(&LOG, "error with soft/hard limits: %s.%s", CONTAINER_RNA_ID(cont), identifier); \
43 BLI_assert_msg(0, "invalid soft/hard limits"); \
47# define ASSERT_SOFT_HARD_LIMITS (void)0
81 "dna_type=%s, dna_offset=%d, dna_struct=%s, dna_name=%s, id=%s\n",
92 Link *link =
static_cast<Link *
>(vlink);
100 if (listbase->
first ==
nullptr) {
101 listbase->
first = link;
103 listbase->
last = link;
108 Link *link =
static_cast<Link *
>(vlink);
117 if (listbase->
last == link) {
120 if (listbase->
first == link) {
146 for (link =
static_cast<Link *
>(listbase->
first); link; link =
next) {
151 listbase->
first = listbase->
last =
nullptr;
192 g_version_data.type_map_static_from_alias, type_name, (
void *)type_name));
209 if (dsrna->
srna == srna) {
230 for (; dprop; dprop = dprop->
prev) {
231 if (dprop->
prop == prop) {
239 for (; dprop; dprop = dprop->
prev) {
240 if (dprop->
prop == prop) {
288 if (dfunc->
func == func) {
297 if (dfunc->
func == func) {
322 for (; dparm; dparm = dparm->
prev) {
323 if (dparm->
prop == parm) {
334 for (; dparm; dparm = dparm->
prev) {
335 if (dparm->
prop == parm) {
385 while (name[0] ==
'*') {
388 while (oname[0] ==
'*') {
393 if (name[a] ==
'[' && oname[a] == 0) {
396 if (name[a] ==
'[' && oname[a] ==
'[') {
402 if (name[a] != oname[a]) {
407 if (name[a] == 0 && oname[a] ==
'.') {
410 if (name[a] == 0 && oname[a] ==
'-' && oname[a + 1] ==
'>') {
414 return (name[a] == oname[a]);
418 const char *structname,
419 const char *membername,
424 int b, structnr, cmp;
433 if (structnr == -1) {
439 for (
int a = 0; a < struct_info->
members_num; a++) {
447 smember->
name = dnaname;
448 smember->
offset = *offset;
451 if (strstr(membername,
"[")) {
459 for (
b = 0; dnaname[
b] ==
'*';
b++) {
467 smember->
name = dnaname;
468 smember->
offset = *offset;
473 membername = strstr(membername,
".") + strlen(
".");
481 smember->
name = dnaname;
482 smember->
offset = *offset;
488 membername = strstr(membername,
"->") + strlen(
"->");
516 static const char *kwlist[] = {
518 "and",
"as",
"assert",
"async",
"await",
"break",
"class",
"continue",
"def",
519 "del",
"elif",
"else",
"except",
"finally",
"for",
"from",
"global",
"if",
520 "import",
"in",
"is",
"lambda",
"nonlocal",
"not",
"or",
"pass",
"raise",
521 "return",
"try",
"while",
"with",
"yield",
nullptr,
524 if (!isalpha(identifier[0])) {
525 *r_error =
"first character failed isalpha() check";
529 for (a = 0; identifier[a]; a++) {
531 if (isalpha(identifier[a]) && isupper(identifier[a])) {
532 *r_error =
"property names must contain lower case characters only";
537 if (identifier[a] ==
'_') {
541 if (identifier[a] ==
' ') {
542 *r_error =
"spaces are not okay in identifier names";
546 if (isalnum(identifier[a]) == 0) {
547 *r_error =
"one of the characters failed an isalnum() check and is not an underscore";
552 for (a = 0; kwlist[a]; a++) {
553 if (
STREQ(identifier, kwlist[a])) {
554 *r_error =
"this keyword is reserved by Python";
560 static const char *kwlist_prop[] = {
569 for (a = 0; kwlist_prop[a]; a++) {
570 if (
STREQ(identifier, kwlist_prop[a])) {
571 *r_error =
"this keyword is reserved by Python";
585 static const char *kwlist[] = {
587 "and",
"as",
"assert",
"break",
"class",
"continue",
"def",
"del",
588 "elif",
"else",
"except",
"finally",
"for",
"from",
"global",
"if",
589 "import",
"in",
"is",
"lambda",
"nonlocal",
"not",
"or",
"pass",
590 "raise",
"return",
"try",
"while",
"with",
"yield",
nullptr,
593 if (!isalpha(identifier[0])) {
598 for (a = 0; identifier[a]; a++) {
600 if (isalpha(identifier[a]) && isupper(identifier[a])) {
602 identifier[a] = tolower(identifier[a]);
606 if (identifier[a] ==
'_') {
610 if (identifier[a] ==
' ') {
615 if (isalnum(identifier[a]) == 0) {
621 for (a = 0; kwlist[a]; a++) {
622 if (
STREQ(identifier, kwlist[a])) {
626 identifier[strlen(identifier) - 1] =
'_';
632 static const char *kwlist_prop[] = {
641 for (a = 0; kwlist_prop[a]; a++) {
642 if (
STREQ(identifier, kwlist_prop[a])) {
646 identifier[strlen(identifier) - 1] =
'_';
656 if (
STREQ(dnatype,
"char") ||
STREQ(dnatype,
"uchar")) {
657 r_range[0] = CHAR_MIN;
658 r_range[1] = CHAR_MAX;
661 if (
STREQ(dnatype,
"short")) {
662 r_range[0] = SHRT_MIN;
663 r_range[1] = SHRT_MAX;
666 if (
STREQ(dnatype,
"int")) {
667 r_range[0] = INT_MIN;
668 r_range[1] = INT_MAX;
671 if (
STREQ(dnatype,
"int8_t")) {
686 const char *error_message =
nullptr;
695 const bool do_alias =
true;
699 CLOG_ERROR(&
LOG,
"Failed to decode SDNA: %s.", error_message);
794 fprintf(stderr,
"%s '%s' freed while holding a Python reference.", srna->
identifier);
800 nextprop = prop->
next;
813 nextparm = parm->
next;
829 rna_brna_structs_remove_and_free(brna, srna);
905 if (ds->
srna == srna) {
920 const char *
error =
nullptr;
934 memcpy(srna, srnafrom,
sizeof(
StructRNA));
940 srna->
base = srnafrom;
956 srna->
name = identifier;
961 srna->
icon = ICON_DOT;
1002 "rna_builtin_properties_begin",
1003 "rna_builtin_properties_next",
1004 "rna_iterator_listbase_end",
1005 "rna_builtin_properties_get",
1008 "rna_builtin_properties_lookup_string",
1033 pprop->
type = &RNA_Struct;
1053 CLOG_ERROR(&
LOG,
"struct %s not found to define %s.", from, identifier);
1100 CLOG_ERROR(&
LOG,
"%s base struct must know DNA already.", structname);
1153 srna->
flag &= ~flag;
1188 const char *instance)
1231 if (identifier[0] !=
'\0') {
1269 const char *identifier,
1280 const char *
error =
nullptr;
1301 const char *
error =
nullptr;
1304 "runtime property identifier \"%s.%s\" - %s",
1321 "subtype does not apply to 'PROP_BOOLEAN' \"%s.%s\"",
1334 "subtype does not apply to 'PROP_INT' \"%s.%s\"",
1402 prop->
name = identifier;
1498 prop->
flag &= ~flag;
1523 prop->
flag |= flag_property;
1531 prop->
flag &= ~flag_property;
1546 "\"%s.%s\", array length must be zero of greater.",
1555 "\"%s.%s\", array length must be smaller than %d.",
1565 "\"%s.%s\", array dimensions has been set to %u but would be overwritten as 1.",
1573 switch (prop->
type) {
1583 "\"%s.%s\", only boolean/int/float can be array.",
1606 "\"%s.%s\", array dimension must be between 1 and %d.",
1614 switch (prop->
type) {
1621 "\"%s.%s\", only boolean/int/float can be array.",
1632 memcpy(prop->
arraylength, length,
sizeof(
int) * dimension);
1635 for (i = 1; i < dimension; i++) {
1655 if (consecutive != 0) {
1658 if (consecutive < 0) {
1664 PropertyRNA *prop,
double min,
double max,
double step,
int precision)
1674 if (step < 0 || step > 100) {
1690 switch (prop->
type) {
1718 switch (prop->
type) {
1747 switch (prop->
type) {
1780 switch (prop->
type) {
1809 const bool is_id_type = (type->flag &
STRUCT_ID) != 0;
1811 switch (prop->
type) {
1821 "\"%s.%s\", this struct type (probably an Operator, Keymap or UserPreference) "
1822 "does not accept ID pointer properties.",
1842 "\"%s.%s\", invalid type for struct type.",
1857 switch (prop->
type) {
1874 int i, defaultfound = 0;
1876 switch (prop->
type) {
1880 int enum_dna_size = -1;
1881 int enum_dna_range[2];
1885 if (dp->dnatype ==
nullptr || dp->dnatype[0] ==
'\0') {
1889 else if (dp->dnaarraylength > 1) {
1892 else if (dp->dnasize == 0) {
1896 enum_dna_size = dp->dnasize;
1899 "\"%s.%s\", enum type \"%s\" size is not known.",
1914 if (item[i].identifier[0]) {
1918 "\"%s.%s\", enum identifiers must not contain spaces.",
1926 if (enum_dna_size != -1) {
1929 if (enum_dna_size == 1) {
1930 enum_type_mask = 0xff;
1932 else if (enum_dna_size == 2) {
1933 enum_type_mask = 0xffff;
1935 if (enum_type_mask != 0) {
1936 if (
uint32_t(item[i].value) != (
uint32_t(item[i].value) & enum_type_mask)) {
1938 "\"%s.%s\", enum value for '%s' does not fit into %d byte(s).",
1949 if (
ELEM(enum_dna_size, 1, 2)) {
1950 if ((item[i].value < enum_dna_range[0]) || (item[i].value > enum_dna_range[1])) {
1952 "\"%s.%s\", enum value for '%s' is outside of range [%d - %d].",
1971 if (!defaultfound) {
1973 if (item[i].identifier[0]) {
1994 switch (prop->
type) {
2011 switch (prop->
type) {
2035 switch (prop->
type) {
2052 switch (prop->
type) {
2074 switch (prop->
type) {
2096 switch (prop->
type) {
2117 switch (prop->
type) {
2139 switch (prop->
type) {
2143 if (value ==
nullptr) {
2145 "\"%s.%s\", nullptr string passed (don't call in this case).",
2154 "\"%s.%s\", empty string passed (don't call in this case).",
2179 int i, defaultfound = 0;
2181 switch (prop->
type) {
2189 for (i = 0; i < eprop->
totitem; i++) {
2197 "\"%s.%s\", default includes unused bits (%d).",
2205 for (i = 0; i < eprop->
totitem; i++) {
2211 if (!defaultfound && eprop->
totitem) {
2235 const char *structname,
2236 const char *propname)
2243 if (dp ==
nullptr) {
2275 "\"%s.%s\" (identifier \"%s\") not found. Struct must be in DNA.",
2307 const char *structname,
2308 const char *propname,
2332 "%s.%s is a '%s' but wrapped as type '%s'.",
2352 bool has_default =
true;
2354 has_default =
false;
2356 fprintf(stderr,
"%s default: unsupported boolean array default\n", __func__);
2361 bprop->
defaultvalue = *(
const char *)default_data & bit;
2364 bprop->
defaultvalue = *(
const short *)default_data & bit;
2367 bprop->
defaultvalue = *(
const int *)default_data & bit;
2370 has_default =
false;
2373 stderr,
"%s default: unsupported boolean type (%s)\n", __func__, dp->
dnatype);
2398 const char *structname,
2399 const char *propname,
2436 "%s.%s is a '%s' but wrapped as type '%s'.",
2455 "\"%s.%s\", type \"%s\" range not known.",
2483 bool has_default =
true;
2488 int *defaultarray =
static_cast<int *
>(
rna_calloc(size_final));
2489 for (
int i = 0; i < prop->
totarraylength && default_data < default_data_end; i++) {
2490 defaultarray[i] = *(
const char *)default_data;
2497 int *defaultarray =
static_cast<int *
>(
rna_calloc(size_final));
2498 for (
int i = 0; i < prop->
totarraylength && default_data < default_data_end; i++) {
2500 *(
const ushort *)default_data;
2506 int *defaultarray =
static_cast<int *
>(
rna_calloc(size_final));
2507 memcpy(defaultarray, default_data, std::min(size_final, dp->
dnasize));
2511 has_default =
false;
2514 "%s default: unsupported int array type (%s)\n",
2522 fprintf(stderr,
"value=(");
2526 fprintf(stderr,
"), ");
2537 *(
const short *)default_data :
2538 *(
const ushort *)default_data;
2542 *(
const uint *)default_data;
2545 has_default =
false;
2547 fprintf(stderr,
"%s default: unsupported int type (%s)\n", __func__, dp->
dnatype);
2589 "%s.%s is a '%s' but wrapped as type '%s'.",
2613 bool has_default =
true;
2617 float *defaultarray =
static_cast<float *
>(
rna_calloc(size_final));
2618 memcpy(defaultarray, default_data, std::min(size_final, dp->
dnasize));
2622 has_default =
false;
2625 "%s default: unsupported float array type (%s)\n",
2633 fprintf(stderr,
"value=(");
2637 fprintf(stderr,
"), ");
2650 has_default =
false;
2653 stderr,
"%s default: unsupported float type (%s)\n", __func__, dp->
dnatype);
2696 CLOG_ERROR(&
LOG,
"\"%s.%s\", array not supported for enum type.", structname, propname);
2709 bool has_default =
true;
2720 has_default =
false;
2722 fprintf(stderr,
"%s default: unsupported enum type (%s)\n", __func__, dp->
dnatype);
2742 const char *structname,
2743 const char *propname)
2755 int defaultvalue_mask = 0;
2757 for (
int i = 0; i < eprop->
totitem; i++) {
2799 sprop->
defaultvalue =
static_cast<const char *
>(default_data);
2802 fprintf(stderr,
"value=\"%s\", ", sprop->
defaultvalue);
2834 CLOG_ERROR(&
LOG,
"\"%s.%s\", array not supported for pointer type.", structname, propname);
2842 const char *structname,
2843 const char *propname,
2844 const char *lengthpropname)
2867 CLOG_ERROR(&
LOG,
"\"%s.%s\", array of collections not supported.", structname, propname);
2879 if (dp && lengthpropname) {
2888 if (lengthpropname[0] == 0 ||
2891 if (lengthpropname[0] == 0) {
2914 CLOG_ERROR(&
LOG,
"\"%s.%s\" not found.", structname, lengthpropname);
3038 switch (prop->
type) {
3080 if (getfunc || setfunc) {
3103 if (getfunc || setfunc) {
3125 switch (prop->
type) {
3174 if (getfunc || setfunc) {
3201 if (getfunc || setfunc) {
3223 switch (prop->
type) {
3272 if (getfunc || setfunc) {
3299 if (getfunc || setfunc) {
3321 switch (prop->
type) {
3360 if (getfunc || setfunc) {
3382 switch (prop->
type) {
3415 switch (prop->
type) {
3419 if (search !=
nullptr) {
3448 if (getfunc || setfunc) {
3464 sprop->
search = search_fn;
3465 if (search_fn !=
nullptr) {
3471 PropertyRNA *prop,
const char *get,
const char *set,
const char *type_fn,
const char *poll)
3480 switch (prop->
type) {
3511 const char *lookupint,
3512 const char *lookupstring,
3513 const char *assignint)
3522 switch (prop->
type) {
3567 switch (prop->
type) {
3598 switch (prop->
type) {
3629 switch (prop->
type) {
3654 const char *
error =
nullptr;
3672 const char *identifier,
3673 const bool default_value,
3674 const char *ui_name,
3675 const char *ui_description)
3688 const char *identifier,
3690 const bool *default_value,
3691 const char *ui_name,
3692 const char *ui_description)
3701 if (default_value) {
3710 const char *identifier,
3712 const bool *default_value,
3713 const char *ui_name,
3714 const char *ui_description)
3723 if (default_value) {
3732 const char *identifier,
3734 const bool *default_value,
3735 const char *ui_name,
3736 const char *ui_description)
3745 if (default_value) {
3754 const char *identifier,
3756 const bool *default_value,
3757 const char *ui_name,
3758 const char *ui_description)
3767 if (default_value) {
3776 const char *identifier,
3777 const int default_value,
3780 const char *ui_name,
3781 const char *ui_description,
3792 if (hardmin != hardmax) {
3802 const char *identifier,
3804 const int *default_value,
3807 const char *ui_name,
3808 const char *ui_description,
3821 if (default_value) {
3824 if (hardmin != hardmax) {
3834 const char *identifier,
3836 const int *default_value,
3839 const char *ui_name,
3840 const char *ui_description,
3853 if (default_value) {
3856 if (hardmin != hardmax) {
3866 const char *identifier,
3867 const char *default_value,
3869 const char *ui_name,
3870 const char *ui_description)
3875 BLI_assert(default_value ==
nullptr || default_value[0]);
3881 if (default_value) {
3890 const char *identifier,
3891 const char *default_value,
3893 const char *ui_name,
3894 const char *ui_description)
3899 BLI_assert(default_value ==
nullptr || default_value[0]);
3905 if (default_value) {
3914 const char *identifier,
3915 const char *default_value,
3917 const char *ui_name,
3918 const char *ui_description)
3923 BLI_assert(default_value ==
nullptr || default_value[0]);
3929 if (default_value) {
3938 const char *identifier,
3939 const char *default_value,
3941 const char *ui_name,
3942 const char *ui_description)
3947 BLI_assert(default_value ==
nullptr || default_value[0]);
3953 if (default_value) {
3962 const char *identifier,
3964 const int default_value,
3965 const char *ui_name,
3966 const char *ui_description)
3971 if (items ==
nullptr) {
3985 const char *identifier,
3987 const int default_value,
3988 const char *ui_name,
3989 const char *ui_description)
3994 if (items ==
nullptr) {
4015 const char *identifier,
4016 const float default_value,
4017 const float hardmin,
4018 const float hardmax,
4019 const char *ui_name,
4020 const char *ui_description,
4021 const float softmin,
4022 const float softmax)
4031 if (hardmin != hardmax) {
4041 const char *identifier,
4043 const float *default_value,
4044 const float hardmin,
4045 const float hardmax,
4046 const char *ui_name,
4047 const char *ui_description,
4048 const float softmin,
4049 const float softmax)
4060 if (default_value) {
4063 if (hardmin != hardmax) {
4073 const char *identifier,
4075 const float *default_value,
4076 const float hardmin,
4077 const float hardmax,
4078 const char *ui_name,
4079 const char *ui_description,
4080 const float softmin,
4081 const float softmax)
4101 const char *identifier,
4103 const float *default_value,
4104 const float hardmin,
4105 const float hardmax,
4106 const char *ui_name,
4107 const char *ui_description,
4108 const float softmin,
4109 const float softmax)
4120 if (default_value) {
4123 if (hardmin != hardmax) {
4133 const char *identifier,
4136 const float *default_value,
4137 const float hardmin,
4138 const float hardmax,
4139 const char *ui_name,
4140 const char *ui_description,
4141 const float softmin,
4142 const float softmax)
4146 const int length[2] = {rows, columns};
4152 if (default_value) {
4155 if (hardmin != hardmax) {
4165 const char *identifier,
4167 const float *default_value,
4168 const float hardmin,
4169 const float hardmax,
4170 const char *ui_name,
4171 const char *ui_description,
4172 const float softmin,
4173 const float softmax)
4195 const char *identifier,
4197 const float *default_value,
4198 const float hardmin,
4199 const float hardmax,
4200 const char *ui_name,
4201 const char *ui_description,
4202 const float softmin,
4203 const float softmax)
4213 if (default_value) {
4221 if (hardmin != hardmax) {
4231 const char *identifier,
4232 const float default_value,
4233 const float hardmin,
4234 const float hardmax,
4235 const char *ui_name,
4236 const char *ui_description,
4237 const float softmin,
4238 const float softmax)
4255 const char *identifier,
4257 const float *default_value,
4258 const float hardmin,
4259 const float hardmax,
4260 const char *ui_name,
4261 const char *ui_description,
4262 const float softmin,
4263 const float softmax)
4274 if (default_value) {
4277 if (hardmin != hardmax) {
4287 const char *identifier,
4288 const float default_value,
4289 const float hardmin,
4290 const float hardmax,
4291 const char *ui_name,
4292 const char *ui_description,
4293 const float softmin,
4294 const float softmax)
4303 if (hardmax < 2.0f) {
4305 "Percentage property with incorrect range: %s.%s",
4313 if (hardmin != hardmax) {
4323 const char *identifier,
4324 const float default_value,
4325 const float hardmin,
4326 const float hardmax,
4327 const char *ui_name,
4328 const char *ui_description,
4329 const float softmin,
4330 const float softmax)
4339 if (hardmin != hardmax) {
4349 const char *identifier,
4351 const char *ui_name,
4352 const char *ui_description)
4365 const char *identifier,
4367 const char *ui_name,
4368 const char *ui_description)
4384 const char *identifier,
4386 const char *ui_name,
4387 const char *ui_description)
4400 const char *identifier,
4402 const char *ui_name,
4403 const char *ui_description)
4424 const char *
error =
nullptr;
4493 "\"%s.%s\", dynamic values are not allowed as strict returns, "
4494 "use RNA_def_function_output instead.",
4499 if (
ret->arraydimension) {
4501 "\"%s.%s\", arrays are not allowed as strict returns, "
4502 "use RNA_def_function_output instead.",
4542 return sizeof(bool) *
len;
4544 return sizeof(
int) *
len;
4554 return sizeof(bool);
4559 return sizeof(
float);
4567 return sizeof(
char *);
4580 return sizeof(
void *);
4589 return sizeof(
void *);
4598 return sizeof(
void *);
4607 const int alignment =
sizeof(
void *);
4608 return (size + alignment - 1) & ~(alignment - 1);
4624 else if (tot >= 8 && (tot & (tot - 1)) == 0) {
4633 (*items)[tot] = *item;
4656 if (item->
value == value) {
4697 if (brna !=
nullptr) {
4760 switch (prop->
type) {
4765 bool *
array =
static_cast<bool *
>(
4776 int *
array =
static_cast<int *
>(
4792 for (a = 0; a < eprop->
totitem; a++) {
4793 if (
array[a].identifier) {
4796 if (
array[a].name) {
4799 if (
array[a].description) {
4810 float *
array =
static_cast<float *
>(
4831static void (*g_py_data_clear_fn)(
PropertyRNA *prop) =
nullptr;
4841 g_py_data_clear_fn = py_data_clear_fn;
4849 if (g_py_data_clear_fn) {
4850 g_py_data_clear_fn(prop);
4866 switch (prop->
type) {
4891 for (a = 0; a < eprop->
totitem; a++) {
4954 PropertyRNA *prop = rna_def_property_find_py_id(cont, identifier);
4955 if (prop !=
nullptr) {
4957 rna_def_property_free(cont, prop);
4968 const char *identifier,
4972 PropertyRNA *prop = rna_def_property_find_py_id(cont, identifier);
4973 if (prop !=
nullptr) {
4991 rna_def_property_free(cont, prop);
5000 return "PROP_BOOLEAN";
5004 return "PROP_FLOAT";
5006 return "PROP_STRING";
5010 return "PROP_POINTER";
5012 return "PROP_COLLECTION";
5015 return "PROP_UNKNOWN";
#define BLI_assert_unreachable()
void * BLI_ghash_lookup_default(const GHash *gh, const void *key, void *val_default) ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_reinsert(GHash *gh, void *key, void *val, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
GHash * BLI_ghash_str_new_ex(const char *info, unsigned int nentries_reserve) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
bool BLI_ghash_remove(GHash *gh, const void *key, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
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_ghash_replace_key(GHash *gh, void *key)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findstring_ptr(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC
#define POINTER_OFFSET(v, ofs)
#define BLT_I18NCONTEXT_DEFAULT_BPYRNA
#define CLOG_ERROR(clg_ref,...)
#define CLOG_WARN(clg_ref,...)
const void * DNA_default_table[SDNA_TYPE_MAX]
blenloader genfile private function prototypes
void DNA_sdna_free(struct SDNA *sdna)
const unsigned char DNAstr[]
struct SDNA * DNA_sdna_from_data(const void *data, int data_len, bool do_endian_swap, bool data_alloc, bool do_alias, const char **r_error_message)
int DNA_struct_member_size(const struct SDNA *sdna, short type, short member_index)
int DNA_struct_find_index_without_alias(const struct SDNA *sdna, const char *str)
Read Guarded memory(de)allocation.
int RNA_def_property_free_identifier(StructOrFunctionRNA *cont_, const char *identifier)
void(*)(Main *, Scene *, PointerRNA *) RNAPropertyUpdateFunc
void RNA_def_struct_free_pointers(BlenderRNA *brna, StructRNA *srna)
#define IS_DNATYPE_BOOLEAN_COMPAT(_str)
void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA *prop)
void RNA_def_property_free_pointers_set_py_data_callback(void(*py_data_clear_fn)(PropertyRNA *prop))
#define IS_DNATYPE_FLOAT_COMPAT(_str)
void RNA_def_property_free_identifier_deferred_finish(StructOrFunctionRNA *cont_, void *handle)
#define IS_DNATYPE_INT_COMPAT(_str)
void RNA_def_func_duplicate_pointers(FunctionRNA *func)
#define RNA_MAX_ARRAY_LENGTH
void RNA_def_struct_duplicate_pointers(BlenderRNA *brna, StructRNA *srna)
void RNA_def_property_free_pointers(PropertyRNA *prop)
void RNA_def_func_free_pointers(FunctionRNA *func)
void(*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop) RNAPropertyUpdateFuncWithContextAndProperty
int RNA_def_property_free_identifier_deferred_prepare(StructOrFunctionRNA *cont_, const char *identifier, void **handle)
#define RNA_MAX_ARRAY_DIMENSION
int(*)(PointerRNA *ptr, PropertyRNA *prop) EnumPropertyGetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, char *value) StringPropertyGetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, bool *values) BooleanArrayPropertyGetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, const bool *values) BooleanArrayPropertySetFunc
int(*)(PointerRNA *ptr, PropertyRNA *prop) StringPropertyLengthFunc
@ STRUCT_PUBLIC_NAMESPACE
@ STRUCT_NO_DATABLOCK_IDPROPERTIES
@ STRUCT_PUBLIC_NAMESPACE_INHERIT
void(*)(PointerRNA *ptr, PropertyRNA *prop, float *values) FloatArrayPropertyGetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, const char *value) StringPropertySetFunc
eStringPropertySearchFlag
@ PROP_STRING_SEARCH_SUPPORTED
void(*)(PointerRNA *ptr, PropertyRNA *prop, int *values) IntArrayPropertyGetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, int value) EnumPropertySetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, const int *values) IntArrayPropertySetFunc
#define RNA_ENUM_ITEM_SEPR
void(*)(PointerRNA *ptr, PropertyRNA *prop, int *min, int *max, int *softmin, int *softmax) IntPropertyRangeFunc
bool(*)(Main *bmain, StructRNA *type) StructUnregisterFunc
void(*)(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn) StringPropertySearchFunc
bool(*)(PointerRNA *ptr, PropertyRNA *prop) BooleanPropertyGetFunc
void **(*)(PointerRNA *ptr) StructInstanceFunc
StructRNA *(*)(Main *bmain, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) StructRegisterFunc
#define RNA_TRANSLATION_PREC_DEFAULT
float(*)(PointerRNA *ptr, PropertyRNA *prop) FloatPropertyGetFunc
int(*)(PointerRNA *ptr, PropertyRNA *prop) IntPropertyGetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, float value) FloatPropertySetFunc
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
void(*)( PointerRNA *ptr, PropertyRNA *prop, float *min, float *max, float *softmin, float *softmax) FloatPropertyRangeFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, int value) IntPropertySetFunc
void(*)(bContext *C, ReportList *reports, PointerRNA *ptr, ParameterList *parms) CallFunc
@ PROP_CONTEXT_PROPERTY_UPDATE
const EnumPropertyItem *(*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free) EnumPropertyItemFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, bool value) BooleanPropertySetFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, const float *values) FloatArrayPropertySetFunc
#define UI_PRECISION_FLOAT_MAX
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE btScalar length() const
Return the length of the vector.
local_group_size(16, 16) .push_constant(Type b
const char * DNA_struct_rename_legacy_hack_static_from_alias(const char *name)
int DNA_member_array_num(const char *str)
void DNA_alias_maps(enum eDNA_RenameDir version_dir, GHash **r_type_map, GHash **r_member_map)
@ DNA_RENAME_STATIC_FROM_ALIAS
draw_view in_light_buf[] float
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
static void refine(OpenSubdiv_Evaluator *evaluator)
IMETHOD Vector diff(const Vector &a, const Vector &b, double dt)
void * rna_calloc(int buffer_size)
void *(* MEM_mallocN)(size_t len, const char *str)
void *(* MEM_recallocN_id)(void *vmemh, size_t len, const char *str)
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void error(const char *str)
void RNA_struct_py_type_set(StructRNA *srna, void *py_type)
void RNA_struct_blender_type_set(StructRNA *srna, void *blender_type)
void * RNA_struct_py_type_get(StructRNA *srna)
PropertyRNA * RNA_def_float_factor(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_enum_items_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
PropertyRNA * RNA_def_int_array(StructOrFunctionRNA *cont_, const char *identifier, const int len, const int *default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
PropertyRNA * RNA_def_float_percentage(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_define_lib_overridable(const bool make_overridable)
void RNA_def_property_struct_runtime(StructOrFunctionRNA *cont, PropertyRNA *prop, StructRNA *type)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_define_animate_sdna(bool animate)
PropertyRNA * RNA_def_boolean_array(StructOrFunctionRNA *cont_, const char *identifier, const int len, const bool *default_value, const char *ui_name, const char *ui_description)
static int DNA_struct_find_index_wrapper(const SDNA *sdna, const char *type_name)
PropertyRNA * RNA_def_float_color(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void rna_freelinkN(ListBase *listbase, void *vlink)
void RNA_def_property_string_search_func_runtime(PropertyRNA *prop, StringPropertySearchFunc search_fn, const eStringPropertySearchFlag search_flag)
void RNA_def_struct_flag(StructRNA *srna, int flag)
PropertyRNA * RNA_def_pointer_runtime(StructOrFunctionRNA *cont_, const char *identifier, StructRNA *type, const char *ui_name, const char *ui_description)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
FunctionRNA * RNA_def_function_runtime(StructRNA *srna, const char *identifier, CallFunc call)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
const char * RNA_property_typename(PropertyType type)
const float rna_default_quaternion[4]
void RNA_def_property_float_default(PropertyRNA *prop, float value)
static void rna_remlink(ListBase *listbase, void *vlink)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
static bool rna_validate_identifier(const char *identifier, bool property, const char **r_error)
void RNA_def_property_enum_default(PropertyRNA *prop, int value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_define_verify_sdna(bool verify)
void rna_freelistN(ListBase *listbase)
void RNA_def_property_string_search_func(PropertyRNA *prop, const char *search, const eStringPropertySearchFlag search_flag)
void RNA_def_property_enum_native_type(PropertyRNA *prop, const char *native_enum_type)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
PropertyRNA * RNA_def_float_rotation(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_float_distance(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
const int rna_matrix_dimsize_4x2[]
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
void RNA_def_property_boolean_default_func(PropertyRNA *prop, const char *get_default)
void RNA_def_struct_property_tags(StructRNA *srna, const EnumPropertyItem *prop_tag_defines)
PropertyRNA * RNA_def_float_translation(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_boolean_layer(StructOrFunctionRNA *cont_, const char *identifier, const int len, const bool *default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
PropertyRNA * RNA_def_float_matrix(StructOrFunctionRNA *cont_, const char *identifier, const int rows, const int columns, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_def_property_int_funcs_runtime(PropertyRNA *prop, IntPropertyGetFunc getfunc, IntPropertySetFunc setfunc, IntPropertyRangeFunc rangefunc)
static struct @1326 g_version_data
static PropertyDefRNA * rna_def_property_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
const float rna_default_scale_3d[3]
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
#define ASSERT_SOFT_HARD_LIMITS
void RNA_def_property_boolean_default(PropertyRNA *prop, bool value)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance)
void RNA_def_property_update_runtime(PropertyRNA *prop, RNAPropertyUpdateFunc func)
void RNA_identifier_sanitize(char *identifier, int property)
void RNA_def_property_dynamic_array_funcs(PropertyRNA *prop, const char *getlength)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
void RNA_def_property_enum_funcs_runtime(PropertyRNA *prop, EnumPropertyGetFunc getfunc, EnumPropertySetFunc setfunc, EnumPropertyItemFunc itemfunc)
void RNA_def_property_boolean_array_funcs_runtime(PropertyRNA *prop, BooleanArrayPropertyGetFunc getfunc, BooleanArrayPropertySetFunc setfunc)
FunctionDefRNA * rna_find_function_def(FunctionRNA *func)
void RNA_def_struct_identifier(BlenderRNA *brna, StructRNA *srna, const char *identifier)
static int rna_member_cmp(const char *name, const char *oname)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_int_default(PropertyRNA *prop, int value)
const float rna_default_axis_angle[4]
void RNA_def_property_editable_array_func(PropertyRNA *prop, const char *editable)
PropertyRNA * RNA_def_int_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const int *default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
PropertyRNA * RNA_def_boolean_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const bool *default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_property_update_notifier(PropertyRNA *prop, const int noteflag)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
PropertyRNA * RNA_def_float_vector_xyz(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_py_data(PropertyRNA *prop, void *py_data)
void RNA_def_struct_clear_flag(StructRNA *srna, int flag)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_float_default_func(PropertyRNA *prop, const char *get_default)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
PropertyRNA * RNA_def_string_file_name(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
static bool debugSRNA_defaults
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_identifier_no_struct_map(StructRNA *srna, const char *identifier)
void RNA_def_property_poll_runtime(PropertyRNA *prop, const void *func)
void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_struct_sdna_from(StructRNA *srna, const char *structname, const char *propname)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
static FunctionRNA * rna_def_function(StructRNA *srna, const char *identifier)
void RNA_def_property_update_runtime_with_context_and_property(PropertyRNA *prop, RNAPropertyUpdateFuncWithContextAndProperty func)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
const int rna_matrix_dimsize_4x4[]
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
static size_t rna_property_type_sizeof(PropertyType type)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
void RNA_def_property_float_funcs_runtime(PropertyRNA *prop, FloatPropertyGetFunc getfunc, FloatPropertySetFunc setfunc, FloatPropertyRangeFunc rangefunc)
PropertyRNA * RNA_def_boolean_layer_member(StructOrFunctionRNA *cont_, const char *identifier, const int len, const bool *default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_collection_runtime(StructOrFunctionRNA *cont_, const char *identifier, StructRNA *type, const char *ui_name, const char *ui_description)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
PropertyRNA * RNA_def_enum_flag(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_int_array_default(PropertyRNA *prop, const int *array)
void RNA_free(BlenderRNA *brna)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_def_function_flag(FunctionRNA *func, int flag)
static bool rna_range_from_int_type(const char *dnatype, int r_range[2])
static int rna_find_sdna_member(SDNA *sdna, const char *structname, const char *membername, DNAStructMember *smember, int *offset)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
BlenderRNA * RNA_create()
void RNA_struct_free_extension(StructRNA *srna, ExtensionRNA *rna_ext)
GHash * type_map_static_from_alias
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_float_array(StructOrFunctionRNA *cont_, const char *identifier, const int len, const float *default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
PropertyDefRNA * rna_find_parameter_def(PropertyRNA *parm)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
const int rna_matrix_dimsize_3x3[]
int rna_parameter_size(PropertyRNA *parm)
PropertyRNA * RNA_def_string_file_path(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_property_string_default(PropertyRNA *prop, const char *value)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_int_array_funcs_runtime(PropertyRNA *prop, IntArrayPropertyGetFunc getfunc, IntArrayPropertySetFunc setfunc, IntPropertyRangeFunc rangefunc)
void RNA_def_property_float_array_funcs_runtime(PropertyRNA *prop, FloatArrayPropertyGetFunc getfunc, FloatArrayPropertySetFunc setfunc, FloatPropertyRangeFunc rangefunc)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
static void print_default_info(const PropertyDefRNA *dp)
PropertyRNA * RNA_def_collection(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties)
void RNA_def_property_override_funcs(PropertyRNA *prop, const char *diff, const char *store, const char *apply)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_function_output(FunctionRNA *, PropertyRNA *ret)
void RNA_def_property_ui_scale_type(PropertyRNA *prop, PropertyScaleType ui_scale_type)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_override_clear_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_enum_item_add_separator(EnumPropertyItem **items, int *totitem)
PropertyDefRNA * rna_find_struct_property_def(StructRNA *srna, PropertyRNA *prop)
void RNA_def_enum_funcs(PropertyRNA *prop, EnumPropertyItemFunc itemfunc)
PropertyRNA * RNA_def_string_dir_path(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
static void rna_brna_structs_add(BlenderRNA *brna, StructRNA *srna)
void RNA_def_property_subtype(PropertyRNA *prop, PropertySubType subtype)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_boolean_array_default(PropertyRNA *prop, const bool *array)
void RNA_def_property_boolean_funcs_runtime(PropertyRNA *prop, BooleanPropertyGetFunc getfunc, BooleanPropertySetFunc setfunc)
void RNA_enum_items_add_value(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item, int value)
static ContainerDefRNA * rna_find_container_def(ContainerRNA *cont)
StructDefRNA * rna_find_struct_def(StructRNA *srna)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_define_free(BlenderRNA *)
void RNA_def_property_tags(PropertyRNA *prop, int tags)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyDefRNA * rna_findlink(ListBase *listbase, const char *identifier)
void RNA_def_struct_translation_context(StructRNA *srna, const char *context)
void RNA_def_property_float_array_default(PropertyRNA *prop, const float *array)
void RNA_def_property_int_default_func(PropertyRNA *prop, const char *get_default)
static StructDefRNA * rna_find_def_struct(StructRNA *srna)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
int rna_parameter_size_pad(const int size)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_nested(BlenderRNA *brna, StructRNA *srna, const char *structname)
void RNA_define_fallback_property_update(int noteflag, const char *updatefunc)
void RNA_def_property_string_funcs_runtime(PropertyRNA *prop, StringPropertyGetFunc getfunc, StringPropertyLengthFunc lengthfunc, StringPropertySetFunc setfunc)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void rna_addtail(ListBase *listbase, void *vlink)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void rna_builtin_properties_next(CollectionPropertyIterator *iter)
void rna_builtin_properties_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
PointerRNA rna_builtin_properties_get(CollectionPropertyIterator *iter)
PointerRNA rna_builtin_type_get(PointerRNA *ptr)
bool(*)(Main *bmain, RNAPropertyOverrideApplyContext &rnaapply_ctx) RNAPropOverrideApply
const EnumPropertyItem *(*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free) PropEnumItemFunc
StructRNA *(*)(PointerRNA *ptr) StructRefineFunc
void(*)(PointerRNA *ptr, float *min, float *max, float *softmin, float *softmax) PropFloatRangeFunc
void(*)(PointerRNA *ptr, bool *values) PropBooleanArrayGetFunc
void(*)(CollectionPropertyIterator *iter) PropCollectionNextFunc
int(*)(PointerRNA *ptr) PropStringLengthFunc
void(*)(CollectionPropertyIterator *iter, PointerRNA *ptr) PropCollectionBeginFunc
bool(*)(PointerRNA *ptr, int key, PointerRNA *r_ptr) PropCollectionLookupIntFunc
PointerRNA(*)(CollectionPropertyIterator *iter) PropCollectionGetFunc
IDProperty **(*)(PointerRNA *ptr) IDPropertiesFunc
void(*)(PointerRNA *ptr, const PointerRNA value, ReportList *reports) PropPointerSetFunc
@ PROP_INTERN_PTR_OWNERSHIP_FORCED
@ PROP_INTERN_FREE_POINTERS
int(*)(const PointerRNA *ptr, int index) ItemEditableFunc
bool(*)(PointerRNA *ptr, PropertyRNA *prop) PropBooleanGetFuncEx
void(*)(PointerRNA *ptr, int *min, int *max, int *softmin, int *softmax) PropIntRangeFunc
void(*)(PointerRNA *ptr, int value) PropEnumSetFunc
int(*)(PointerRNA *ptr) PropEnumGetFunc
void(*)(Main *bmain, Scene *active_scene, PointerRNA *ptr) UpdateFunc
int(*)(const PointerRNA *ptr, const char **r_info) EditableFunc
bool(*)(PointerRNA *ptr, const char *key, PointerRNA *r_ptr) PropCollectionLookupStringFunc
void(*)(PointerRNA *ptr, int value) PropIntSetFunc
int(*)(const PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION]) PropArrayLengthGetFunc
PointerRNA(*)(PointerRNA *ptr) PropPointerGetFunc
bool(*)(PointerRNA *ptr, const PointerRNA value) PropPointerPollFunc
void(*)(PointerRNA *ptr, PropertyRNA *prop, float *values) PropFloatArrayGetFuncEx
void(*)(PointerRNA *ptr, const float *values) PropFloatArraySetFunc
StructRNA *(*)(PointerRNA *ptr) PropPointerTypeFunc
void(*)(Main *bmain, RNAPropertyOverrideDiffContext &rnadiff_ctx) RNAPropOverrideDiff
void(*)(PointerRNA *ptr, char *value) PropStringGetFunc
void(*)(PointerRNA *ptr, bool value) PropBooleanSetFunc
bool(*)(Main *bmain, PointerRNA *ptr_local, PointerRNA *ptr_reference, PointerRNA *ptr_storage, PropertyRNA *prop_local, PropertyRNA *prop_reference, PropertyRNA *prop_storage, int len_local, int len_reference, int len_storage, IDOverrideLibraryPropertyOperation *opop) RNAPropOverrideStore
std::optional< std::string >(*)(const PointerRNA *ptr) StructPathFunc
int(*)(PointerRNA *ptr) PropCollectionLengthFunc
#define CONTAINER_RNA_ID(cont)
void(*)(PointerRNA *ptr, PropertyRNA *prop, int *values) PropIntArrayGetFuncEx
void(*)(PointerRNA *ptr, PropertyRNA *prop, bool *values) PropBooleanArrayGetFuncEx
void(*)(PointerRNA *ptr, const bool *values) PropBooleanArraySetFunc
bool(*)(PointerRNA *ptr) PropBooleanGetFunc
bool(*)(PointerRNA *ptr, int key, const PointerRNA *assign_ptr) PropCollectionAssignIntFunc
void(*)(PointerRNA *ptr, int *values) PropIntArrayGetFunc
void(*)(PointerRNA *ptr, float value) PropFloatSetFunc
void(*)(PointerRNA *ptr, const int *values) PropIntArraySetFunc
int(*)(PointerRNA *ptr, PropertyRNA *prop) PropIntGetFuncEx
int(*)(PointerRNA *ptr) PropIntGetFunc
float(*)(PointerRNA *ptr, PropertyRNA *prop) PropFloatGetFuncEx
void(*)(PointerRNA *ptr, const char *value) PropStringSetFunc
float(*)(PointerRNA *ptr) PropFloatGetFunc
void(*)(PointerRNA *ptr, float *values) PropFloatArrayGetFunc
void(*)(CollectionPropertyIterator *iter) PropCollectionEndFunc
struct StructRNA * laststruct
struct BlenderDefRNA::@1327::@1328 property_update
struct BlenderDefRNA::@1327 fallback
PropBooleanGetFuncEx get_default
PropBooleanArraySetFuncEx setarray_ex
PropBooleanArrayGetFuncEx getarray_ex
PropBooleanArraySetFunc setarray
const bool * defaultarray
PropBooleanArrayGetFuncEx get_default_array
PropBooleanSetFuncEx set_ex
PropBooleanGetFuncEx get_ex
PropBooleanArrayGetFunc getarray
PropCollectionNextFunc next
PropCollectionLookupStringFunc lookupstring
PropCollectionLengthFunc length
PropCollectionLookupIntFunc lookupint
PropCollectionBeginFunc begin
PropCollectionAssignIntFunc assignint
PropCollectionEndFunc end
PropCollectionGetFunc get
const EnumPropertyItem * item
const char * native_enum_type
PropFloatSetFuncEx set_ex
PropertyScaleType ui_scale_type
PropFloatRangeFuncEx range_ex
PropFloatArrayGetFuncEx getarray_ex
PropFloatArraySetFuncEx setarray_ex
PropFloatArrayGetFunc getarray
PropFloatGetFuncEx get_default
const float * defaultarray
PropFloatArraySetFunc setarray
PropFloatGetFuncEx get_ex
PropFloatArrayGetFuncEx get_default_array
PropIntRangeFuncEx range_ex
PropIntArrayGetFunc getarray
PropIntArrayGetFuncEx getarray_ex
PropIntArraySetFunc setarray
PropIntArrayGetFuncEx get_default_array
PropIntArraySetFuncEx setarray_ex
PropertyScaleType ui_scale_type
PropIntGetFuncEx get_default
PropPointerTypeFunc type_fn
const char * dnastructfromprop
const char * dnastructname
const char * dnalengthstructname
const char * dnalengthname
const char * dnastructfromname
ItemEditableFunc itemeditable
PropArrayLengthGetFunc getlength
const char * translation_context
RNAPropOverrideApply override_apply
unsigned int arraydimension
RNAPropOverrideStore override_store
RNAPropOverrideDiff override_diff
unsigned int arraylength[RNA_MAX_ARRAY_DIMENSION]
unsigned int totarraylength
SDNA_StructMember members[]
const char * defaultvalue
PropStringLengthFuncEx length_ex
PropStringLengthFunc length
PropStringGetFuncEx get_ex
PropStringSetFuncEx set_ex
StringPropertySearchFunc search
eStringPropertySearchFlag search_flag
StructUnregisterFunc unreg
StructInstanceFunc instance
const char * translation_context
const EnumPropertyItem * prop_tag_defines
PropertyRNA * nameproperty
IDPropertiesFunc idproperties
PropertyRNA * iteratorproperty